Я пытаюсь сопоставить имена файлов, используя boost::regex
, и у меня есть два вида шаблонов:
XYZsomestring
XYsomestringENDING
Строка somestring
может быть любой (>0 символов). Начало имени файла либо XYZ
, либо XY
. Если это XY
, должна быть строка ENDING
, которая завершает всю последовательность. Я попытался объединить два регулярных выражения с |
, но это не сработало. Это соответствует именам файлов с первым шаблоном:
(XYZ)(.*)
и это соответствует именам файлов со вторым шаблоном:
(XY)(.*)(ENDING)
Но когда я их комбинирую, совпадает только первый шаблон:
((XYZ)(.*))|((XY)(.*)(ENDING))
Все это должно быть нечувствительным к регистру, поэтому я использую boost::regex::icase
в конструкторе. Пробовал и без этого icase
, тоже не работает).
Какие-либо предложения?
((XY)(.*)(ENDING))|((XYZ)(.*))
- person Wiktor Stribiżew   schedule 19.06.2015