日期:2014-05-16  浏览次数:20634 次

linux c正则表达式
regcomp (&reg, "\\((\\d{1,3}\\,){5}\\d{1,3}\\)", 0);
ret = regexec(&reg, "(192,192,192,114,61,220)", nmatch, pm, 0);
结果ret = 1

不知道错在哪里?
linux 正则表达式 c

------解决方案--------------------
无论是GNU ERE 还是 POSIX ERE都不支持\d的。
试试
"\\(([0-9]{1,3},){5}[0-9]{1,3}\\)"
------解决方案--------------------
别忘记加上REG_EXTENDED
regcomp (&reg, "\\(([0-9]{1,3},){5}[0-9]{1,3}\\)", REG_EXTENDED);



引用:
无论是GNU ERE 还是 POSIX ERE都不支持\d的。
试试
"\\(([0-9]{1,3},){5}[0-9]{1,3}\\)"

------解决方案--------------------
网上有多介绍正则表达式的文章。

可能是最好的介绍正则表达式的中文材料
http://scc.qibebt.cas.cn/docs/linux/script/tao_regexps_zh.html

各种风格的正则表达的比较
http://www.regular-expressions.info/refflavors.html

学习正则表达式的好帮手
http://www.regexbuddy.com/