2016-06-02 7 views
-2

Я пытаюсь выбрать с регулярным выражением любой файл с расширением db. Мое регулярное выражение:Регулярное выражение 'недействительно'

*.db 

все еще я получаю ошибку, говоря, что '*' не может начать регулярное выражение? Как так, каждый раз, когда я печатаю что-то вроде * .exe, скажем, в окне поиска проводника Windows, я получаю то, что хочу, то есть каждый файл с расширением .exe.
Я использую boost :: regex.

+2

'* .db' не шаблон регулярного выражения, это подстановочные шаблон. Чтобы сопоставить символы 0+, используйте '. *'. В вашем случае, я думаю, вам нужно '^. * \ .db $' (или '^. * [.] Db $', если вы не знаете, как правильно сбрасывать обратную косую черту в строках C). –

+0

@ WiktorStribiżew Привет, Спасибо за ваш ответ. Но я не могу ожидать, что пользователь напечатает регулярное выражение в окне поиска. Пользователь * будет * ожидать, что шаблон шаблона будет работать. Есть ли способ переместить шаблон шаблона в регулярное выражение? –

+0

Замените '*' '. *', '?' На '.', обрабатывайте другие подшаблоны подстановочных знаков и удаляйте специальные символы. –

ответ