C:正则表达式与浮点文字不匹配

时间:2017-03-15 22:22:25

标签: c regex

我正在编写一个简单的脚本来匹配浮点文字,只应匹配+123.23-123.23123.23等,所以我不匹配那些{{1}形式。所以我的表达式很简单:-1.0e-10可以选择性地捕获符号,数字,点和分数。我的C验证看起来像:

[+-]?([0-9]*[.])?[0-9]+

但是,reti的值为1,这意味着我在测试字符串“-87.21”上的正则表达式失败了。我在regexr.com上测试了我的正则表达式,它匹配“-87.21”,所以我真的不知道这里发生了什么。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

您需要在调用REG_EXTENDED时添加regcomp标记,或者使您的正则表达式与POSIX BRE(基本正则表达式,sed和{{使用的旧语法)兼容1}}没有grep)。 BRE是默认值,可能不是您想要的。