2013-05-28 44 views
0

我有一个字符串"SolutionAN ANANANA SolutionBNabcabcSolutionX",我想返回所有以Solution开头的字符串,并在子字符串Solution之前结束。Boost C正则表达式 - 如何返回所有匹配

使用boost::regex时,我无法对其进行正则表达式。

我想要得到SolutionAN ANANANA,SolutionBNababcSolutionX作为输出。我是新的正则表达式在提升,任何帮助将不胜感激。

回答

1

你可以使用这个表达式

(?s)Solution.*?(?=Solution|$) 

.*?将匹配0到多个字符懒洋洋地即它吃尽可能少。 没有?它会变得贪婪和尽可能吃。

x(?=yz)是一个超前其中x只有在后面YZ

$匹配是字符串的结尾


.默认情况下将不匹配换行符character..You应该使用(?s)在正则表达式或使用mod_s选项导致.匹配换行符

+0

我认为这个正则表达式不能通过,而字符串包含i ng像输入一样的新行字符:解决方案Avc \ n mn Solutionxy然后它将输出作为解决方案Avc和Solutionxy,而我想输出作为解决方案Avc \ n mn和Solutionxy –

+0

请问如何使用match_no_dot_null选项? –

+0

我不认为这是解决问题:/ –

相关问题