-2
Я пытаюсь выбрать с регулярным выражением любой файл с расширением db. Мое регулярное выражение:Регулярное выражение 'недействительно'
*.db
все еще я получаю ошибку, говоря, что '*' не может начать регулярное выражение? Как так, каждый раз, когда я печатаю что-то вроде * .exe, скажем, в окне поиска проводника Windows, я получаю то, что хочу, то есть каждый файл с расширением .exe.
Я использую boost :: regex.
'* .db' не шаблон регулярного выражения, это подстановочные шаблон. Чтобы сопоставить символы 0+, используйте '. *'. В вашем случае, я думаю, вам нужно '^. * \ .db $' (или '^. * [.] Db $', если вы не знаете, как правильно сбрасывать обратную косую черту в строках C). –
@ WiktorStribiżew Привет, Спасибо за ваш ответ. Но я не могу ожидать, что пользователь напечатает регулярное выражение в окне поиска. Пользователь * будет * ожидать, что шаблон шаблона будет работать. Есть ли способ переместить шаблон шаблона в регулярное выражение? –
Замените '*' '. *', '?' На '.', обрабатывайте другие подшаблоны подстановочных знаков и удаляйте специальные символы. –