我有一个字符串"SolutionAN ANANANA SolutionBNabcabcSolutionX"
,我想返回所有以Solution
开头并在子字符串Solution
之前结束的字符串。
使用boost::regex
时,我无法为其制作正则表达式。
我想将SolutionAN ANANANA
,SolutionBNababc
和SolutionX
作为输出。我是regex的新手,我将不胜感激任何帮助。
答案 0 :(得分:1)
您可以使用此正则表达式
(?s)Solution.*?(?=Solution|$)
.*?
会匹配0到多个字符懒惰,即尽可能少吃。
没有?
它会变得贪婪并尽可能多地吃。
x(?=yz)
是一个前瞻,只有当后面跟着yz
$
是字符串
.
与换行符不匹配。您应该在正则表达式中使用(?s)
修饰符或使用mod_s
选项,这会导致.
匹配换行符