使用正则表达式匹配字符串 我想在C++程序中编写一个正则表达式,它检查字符串是否匹配下面的表达式:

使用正则表达式匹配字符串 我想在C++程序中编写一个正则表达式,它检查字符串是否匹配下面的表达式:,c++,regex,C++,Regex,不包含‘‘’但可以包含后跟数字的单词 ""后接 一行三位数字(即047) 后跟“u”,后跟 字符串(可以包含任何内容) 我尝试了以下表达式,但它似乎找到了如上所述的所需字符串。我怀疑问题出在第一部分,但我无法检测到它以便正确修改: static const wregex stringForm("([^_]?)_?(\\d{3})_(.+)"); 那么什么是正确的reg表达式 您是否尝试过以下方法: static const wregex stringForm("([a-zA-Z0-9]*_

不包含‘‘’但可以包含后跟数字的单词

""后接

一行三位数字(即047)

后跟“u”,后跟

字符串(可以包含任何内容)

我尝试了以下表达式,但它似乎找到了如上所述的所需字符串。我怀疑问题出在第一部分,但我无法检测到它以便正确修改:

static const wregex stringForm("([^_]?)_?(\\d{3})_(.+)");  
那么什么是正确的reg表达式

您是否尝试过以下方法:

static const wregex stringForm("([a-zA-Z0-9]*_[0-9]{3}.*)"); 
单词(
\b
是单词边界,量词是非贪婪的)。 零个或多个字符不是“(
[^\u]*?
)。
可选(
(…)?
),您描述的数字序列(
\d{3}
)后跟一个或多个字符(
+?
)。

您可以添加一个您想要匹配的字符串的具体示例吗?第一个与条件相矛盾。“不包含…”vs“可以包含…”后接…”。此逻辑错误反映在您的regexp中。您的示例与上述描述不匹配(该描述不要求在3位数字之前加上前导下划线)。您应该提供几个示例,一些匹配,一些不匹配,以最大化更改以获得有用的答案。您的示例没有“数字后跟三位数”@OrangeDog字符串的第一部分应该是可以包含数字的单词,而不是绝对的数字。
\b[^_]*?(_\d{3}.+?)?\b