当前位置: 技术问答>linux和unix
在C/C++里面使用正则表达式通配搜索,结果非预期
来源: 互联网 发布时间:2016-10-21
本文导语: 在susu10下面调试正则表达式的使用, 遇到了一些比较费解的结果, 如下: 正则表达式编译和运行, 没有什么特殊的; regcomp(&stRegex, strRegStr, REG_EXTENDED | REG_ICASE); regexec(&stRegex, strCont, 10, stRegMatch, 0); 我的文本包...
在susu10下面调试正则表达式的使用, 遇到了一些比较费解的结果, 如下:
正则表达式编译和运行, 没有什么特殊的;
我的文本包含如下内容:
Route:
Route:
然后我输入表达式希望搜索到这2行: Route:.+
.表示除换行外任意字符, +匹配1到多次, 但是上面的表达式运行直接报错: Segmentation fault
类似 Route:.{1,} 希望匹配至少一个字符也会报错, 但是 Route:.{1,70}又不报错,
但是搜索结果结束位置会超过Route这一行, 一直到达下面其他内容, 给出结果为总长70字符的内容;
那位大大知道如何描述或者哪里有linux下的正则表达式语法规则, 麻烦答复一下, 多谢~~
正则表达式编译和运行, 没有什么特殊的;
regcomp(&stRegex, strRegStr, REG_EXTENDED | REG_ICASE);
regexec(&stRegex, strCont, 10, stRegMatch, 0);
我的文本包含如下内容:
Route:
Route:
然后我输入表达式希望搜索到这2行: Route:.+
.表示除换行外任意字符, +匹配1到多次, 但是上面的表达式运行直接报错: Segmentation fault
类似 Route:.{1,} 希望匹配至少一个字符也会报错, 但是 Route:.{1,70}又不报错,
但是搜索结果结束位置会超过Route这一行, 一直到达下面其他内容, 给出结果为总长70字符的内容;
那位大大知道如何描述或者哪里有linux下的正则表达式语法规则, 麻烦答复一下, 多谢~~
|
既然报错: Segmentation fault
根本就是你程序有错误 还谈不上正则是否正确
根本就是你程序有错误 还谈不上正则是否正确