有没有办法在C++ TR1正则表达式中使用dot(.)匹配换行符?

kli*_*iao 13 c++ regex tr1

我在http://msdn.microsoft.com/en-us/library/bb982727.aspx上找不到任何相关内容.

也许我可以使用'[^] +'匹配所有内容,但这似乎是一个黑客?

谢谢.

Nic*_*lás 12

Boost.Regex有一个mod_s标志使点匹配换行符,但它不是TR1正则表达式标准的一部分.(据我所见,并没有作为Microsoft扩展提供)

作为一种解决方法,您可以使用[\s\S](这意味着匹配任何空格或任何非空格).


Bri*_*ell 8

由于C++正则表达式似乎基于ECMAScript正则表达式,因此JavaScript中关于同一事物的最新问题答案可能对您有所帮助.

[^]应该工作,但如果你想要一些更清晰,更少hackish的东西,你可以试试(.|\n).


Asa*_*aph 5

人们使用的一个技巧是包含任何非空字符的字符类.空字符以十六进制表示.它看起来像这样:

[^\x00]+
Run Code Online (Sandbox Code Playgroud)