使用正则表达式匹配字符串

Matching string using regex

本文关键字:字符串 正则表达式      更新时间:2023-10-16

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

不包含"_"的单词,但可以包含后面跟着的数字

'_'后接

一行三位(即047)

然后是"_",然后是

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

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

static const wregex stringForm("([^_]?)_?(\d{3})_(.+)");  

那么,正确的reg表达式是什么?

b[^_]*?(_d{3}.+?)?b

一个词(b是词的边界,量词是非贪婪的)。零个或多个不是_([^_]*?)的字符。(可选)((...)?),您描述的数字序列(_d{3}),后跟一个或多个任意字符(.+?)。

你试过这个吗:

static const wregex stringForm("([a-zA-Z0-9]*_[0-9]{3}.*)");