作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在以下过于简化的代码示例中:
reg = "^[0-9]{1,10}$";
str = "123abc";
regcomp(&re, reg, REG_EXTENDED);
regexec(&re, str, 0, NULL, 0);
在regexec
返回REG_NOMATCH
之后,我想获取导致匹配失败的字符的位置(上例中的3)。
最佳答案
如果您想看看最后一个适合的是什么,您需要尝试所有适合的组合:
int count=1;
varReg=strdup("^[0-9]");
while (works(varReg)){
aux=varReg;
varReg=malloc(strlen(varReg)+1);
sprintf(varReg,"%s%d",aux, count++);
free(aux)
}
fprint ("fail in: %d\n", --count);
你需要构建bool有效(char* regex)
但是很简单;)
关于c - 有没有办法在 regexec 调用后获取第一个不匹配字符的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28533033/
我是一名优秀的程序员,十分优秀!