gpt4 book ai didi

c++ - 如何忽略 C++ 正则表达式中标记之间的空格(自由间距模式)

转载 作者:行者123 更新时间:2023-11-30 01:52:13 24 4
gpt4 key购买 nike

我正在构建大型正则表达式查询,不希望正则表达式因空格不匹配而失败。适用于我的应用程序的一个示例是我想要一个匹配以下两项的正则表达式:

“int a;”“int a;”

我可以使用 int\s+a; 来匹配这两个,但谁想通读 100 行呢!

所以我进行了快速搜索并发现了 自由间距模式 ( http://www.regular-expressions.info/freespacing.html ),它似乎使 int a; 与上述两者匹配。伟大的!如何使用标准的 regex 库在 C++ 中使用它?

Boost 也是可以接受的,但首选标准解决方案。

最佳答案

std 正则表达式库基于 POSIX 正则表达式语法。根据您的链接,那是不支持自由间距模式的。

“在本教程中讨论的风格中,只有 XML Schema 以及 POSIX 和 GNU 风格不支持它”

我相信你应该使用\s+。如果您正在生成静态表达式,我的建议是使用 boost::xpressive。

请记住,阅读复杂的正则表达式是一项需要大量练习的技能。如果您认为\s+ 是个问题...请稍候。

关于c++ - 如何忽略 C++ 正则表达式中标记之间的空格(自由间距模式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24989768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com