【发布时间】:2011-01-04 09:09:03
【问题描述】:
我在 http://msdn.microsoft.com/en-us/library/bb982727.aspx 上找不到任何相关信息。
也许我可以使用 '[^]+' 来匹配所有内容,但这似乎是一种 hack?
谢谢。
【问题讨论】:
我在 http://msdn.microsoft.com/en-us/library/bb982727.aspx 上找不到任何相关信息。
也许我可以使用 '[^]+' 来匹配所有内容,但这似乎是一种 hack?
谢谢。
【问题讨论】:
Boost.Regex 有一个 mod_s 标志来使点匹配换行符,但它不是 TR1 正则表达式标准的一部分。 (据我所知,也不能作为 Microsoft 扩展提供)
作为一种解决方法,您可以使用[\s\S](这意味着匹配任何空白或任何非空白)。
【讨论】:
由于 C++ 正则表达式似乎基于 ECMAScript 正则表达式,因此 JavaScript 中关于相同内容的 answer to the recent question 可能会对您有所帮助。
[^] 应该可以工作,但如果您想要更清晰且不那么骇人听闻的东西,您可以试试(.|\n)。
【讨论】:
人们使用的一个技巧是一个包含任何非空字符的字符类。空字符以十六进制表示。它看起来像这样:
[^\x00]+
【讨论】:
您可以切换到非 ECMA 风格的正则表达式(有许多标志可以控制 regext 风格)。如果我没记错的话,任何 POSIX 正则表达式都应该将换行符与. 匹配。
【讨论】:
extended 正则表达式,在 Linux 上使用 gcc 和在 macOSX 上使用 Apple clang。可悲的是,它不适用于 Visual Studio,至少不适用于我尝试过的 2019 v16.8.0。因此它不是一个通用的解决方案。