C++ 如何忽略c++;正则表达式(自由间距模式)

C++ 如何忽略c++;正则表达式(自由间距模式),c++,regex,C++,Regex,我正在构建大型正则表达式查询,不希望正则表达式因空格不匹配而失败。适用于我的应用程序的一个示例是,我需要一个与以下两项都匹配的正则表达式: “int a;” “int a;” 我可以使用int\s+a匹配这两个,但谁想通读100行呢 所以我做了一个快速搜索,发现了自由间隔模式(),它似乎使int成为一个匹配以上两项。伟大的在C++中如何使用标准的代码> ReXEX 库?< /P> Boost也是可以接受的,但最好使用std解决方案。std正则表达式库基于POSIX正则表达式语法。根据你的链接,这

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

“int a;”
“int a;”

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


所以我做了一个快速搜索,发现了
自由间隔模式
(),它似乎使
int成为一个匹配以上两项。伟大的在C++中如何使用标准的代码> ReXEX <代码>库?< /P>

Boost也是可以接受的,但最好使用std解决方案。

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

“在本教程中讨论的风格中,只有XML模式、POSIX和GNU风格不支持它”

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


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

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

“在本教程中讨论的风格中,只有XML模式、POSIX和GNU风格不支持它”

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

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


  • 自由间距模式
    导致忽略正则表达式中的空格。它对您试图匹配的实际字符串没有任何作用

  • 减少空白正则表达式的冗长性的一个选项是,您可以执行一次操作,将所有多个空间序列转换为单个空间,然后只执行
    int a每次


  • 自由间距模式
    导致忽略正则表达式中的空格。它对您试图匹配的实际字符串没有任何作用

  • 减少空白正则表达式的冗长性的一个选项是,您可以执行一次操作,将所有多个空间序列转换为单个空间,然后只执行
    int a每次


  • 无论什么,regex都会非常难以读取。
    自由间距模式
    会导致regex中的空格被忽略。它对您试图匹配的实际字符串没有任何作用。为什么不只插入[SPACE]*?@DTSCode,因为我将不得不插入它而不是每个空格,它会变得很难看。我希望避免这种情况。另一种选择是,你可以做一次,把所有的多个空间序列转换成一个空间,然后你就可以做
    inta
    每次.Reg Ex都会很难读取。自由间距模式
    会忽略regex中的空格。它对您试图匹配的实际字符串没有任何作用。为什么不只插入[SPACE]*?@DTSCode,因为我将不得不插入它而不是每个空格,它会变得很难看。我希望避免这种情况。另一种选择是,你可以做一次,把所有的多个空间序列转换成一个空间,然后你就可以做
    inta每次。