Regex 如何从正则表达式搜索中排除单词?

Regex 如何从正则表达式搜索中排除单词?,regex,qt,find,Regex,Qt,Find,如何为以下问题创建正则表达式: 我有一根绳子, 名称1=值1;名称2=值2 某处,有一对, begin=10072011; 我需要使用正则表达式从字符串all name=value解析;成对,其中值为数字。但是,我想忽略名称begin 目前我有以下regexp: ([\\w]+)=([\\d]+); “我的”选择开始名称。如何将其更改为不包含begin??!开始\b\w+=\d+ 这将使用负前瞻,因此如果字符串以begin开头,它将不匹配。\b是必需的,这样正则表达式就不会跳过b并匹配egin

如何为以下问题创建正则表达式:

我有一根绳子, 名称1=值1;名称2=值2

某处,有一对, begin=10072011; 我需要使用正则表达式从字符串all name=value解析;成对,其中值为数字。但是,我想忽略名称begin

目前我有以下regexp:

([\\w]+)=([\\d]+);
“我的”选择开始名称。如何将其更改为不包含begin?

?!开始\b\w+=\d+

这将使用负前瞻,因此如果字符串以begin开头,它将不匹配。\b是必需的,这样正则表达式就不会跳过b并匹配egin=

请注意,在描述正则表达式时,您应该只使用一个反斜杠来转义,尽管对于某些语言,您需要使用两个反斜杠来转义反斜杠。

?!开始\b\w+=\d+

这将使用负前瞻,因此如果字符串以begin开头,它将不匹配。\b是必需的,这样正则表达式就不会跳过b并匹配egin=

请注意,在描述正则表达式时,您应该只使用一个反斜杠来转义,尽管对于某些语言,您需要使用两个反斜杠来转义反斜杠。

这应该可以做到:

\b(?!begin=)(\w+)=(\d+)\b
作为aC++字符串文字,它将如下所示:

"\\b(?!begin=)(\\w+)=(\\d+)\\b"
\b是a;您可以使用它来确保匹配整个单词,因为单词是在正则表达式的上下文中定义的;仔细阅读那一页。例如,如果没有第一个\b,正则表达式将无法正确匹配

begin=1234   // OK
…但它会跳到前面一个位置并匹配:

egin=1234    // oops!
这应该做到:

\b(?!begin=)(\w+)=(\d+)\b
作为aC++字符串文字,它将如下所示:

"\\b(?!begin=)(\\w+)=(\\d+)\\b"
\b是a;您可以使用它来确保匹配整个单词,因为单词是在正则表达式的上下文中定义的;仔细阅读那一页。例如,如果没有第一个\b,正则表达式将无法正确匹配

begin=1234   // OK
…但它会跳到前面一个位置并匹配:

egin=1234    // oops!

我想?我想?谢谢!是的——双斜线,因为使用C++的字符串谢谢!是的——因为使用C++ StutsiSI的双斜杠在任何情况下都不同意这个答案,但是Qt的QReGEXP味道似乎不支持LoopBeNeDS。无论如何,我都不同意这个答案,但Qt的QRegExp风格似乎不支持lookbehinds。