c++ - 如何准备在匹配时转义部分数字的正则表达式?

标签 c++ regex pcre

我正在使用 pcre_exec() 来编译正则表达式。

我想匹配具有数字的字符串,其中 3 位数字后跟“-”,但如果数字以一位或多位数字为前缀,则它不应匹配。 例如

345- => match and matches text => (345-)
:546- = match and matches text => (546-)
 123- = match and matches text => (123-)
2355- = Should not match as 355- is prefixed with "2" digit.

我尝试了 ^([\\s|:]*)([0-7]\\d{2})- 但它不起作用。

最佳答案

使用后视断言前一个字符不是数字:

(?<!\d)([0-7]\d{2})-

关于c++ - 如何准备在匹配时转义部分数字的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27505950/

相关文章:

c++ - Visual Studio 2015 社区 ZeroMQ 静态库链接错误

regex - 我如何替换在 linux 中特定文件夹中找到的所有电子邮件地址

php - PHP 正则表达式中的 ^$ 和 $^ 是否相同?

c++ - 即使我用 -L 指定了它的位置,链接器也找不到库

c++ - std::find 它是如何工作的?运算符==

c# - 制作 C# RegEx 匹配返回意外数据

c - Delphi PerlRegEx : Link . 静态 obj 文件,因此它们不依赖于 msvcrt.dll

php - 如何正则表达式匹配一串数字和连字符,但不以连字符开头或结尾?

c++ - 在c++中,是否有可能以字符串的形式获取作为参数传递的变量的名称?

ruby - 在 ruby​​ 中从字符串中解析 token 的更清晰的方法