У меня есть раздел в файле:Как определить регулярное выражение в boost?
[Source]
[Source.Ia32]
[Source.Ia64]
Я создал выражение как:
Const повышение :: регулярных выражений source_line_pattern; ("(Sources) (*).?")
Теперь, я пытаюсь соответствовать строке, но я не могу соответствовать; он всегда возвращается 0.
if (boost::regex_match (sToken, source_line_pattern))
return TRUE;
Обратите внимание, что значение sToken является [Source]. [Source.Ia32] ... и так далее.
Спасибо,
'. *?' Означает не-жадный повтор в синтаксисе regex Perl, который по умолчанию используется в 'boost :: regex': http://www.boost.org/doc/libs/1_34_0/libs/regex/ doc/syntax_perl.html – svk
Я добавил регулярное выражение «\\ [Source (?: \. (\\ w +))? \\] \\ s *", но он все равно возвращается 0. – user1553605
@svk Ah. Я не искал его и просто интерпретировал его как '*', за которым следует '?', А не как один токен '*?'. –