0
我正在写一个C程序,它使用正则表达式来确定正在从文件读取的文本中的某些单词是有效还是无效的。我附上了执行我的正则表达式检查的代码。我使用了一个在线正则表达式检查器,并基于它说我的正则表达式是正确的。我不确定为什么它会是错的。
正则表达式应接受AB1234或ABC1234 ABCD1234格式的字符串。正则表达式没有返回正确的解决方案
//compile the regular expression
reti1 = regcomp(®ex1, "[A-Z]{2,4}\\d{4}", 0);
// does the actual regex test
status = regexec(®ex1,inputString,(size_t)0,NULL,0);
if (status==0)
printf("Matched (0 => Yes): %d\n\n",status);
else
printf(">>>NO MATCH<< \n\n");
究竟是“错误”呢?请提供可以产生意想不到结果的示例输入 – aschepler
此外,你可以做一个[简短但完整的程序](https://stackoverflow.com/help/mcve),说明问题?你应该在代码中包含至少一个给出意外结果的示例输入,就像@aschepler提到的那样,但除此之外,它不需要比你已经拥有'main()'函数的代码多得多。 –
看起来像使用POSIX正则表达式实现(regex.h),但传递不支持的PCRE样式正则表达式。 –