c - 使用正则表达式在 C 中设置正确的正则表达式的问题
问题描述
我想匹配以一组字符开头的所有字符串a-z
,然后正好匹配一个:
和另一组字符a-z
。
例如,字符串"an:example"
将是正确的匹配项。
另一个例子,"another:ex:ample"
需要是不匹配的。
我试图这样设置它,但它匹配所有内容,即使我将错误的字符串作为输入:(
所以我的正则表达式是"[a-z]:[a-z]"
,但它将字符串评估"1an:example"
为匹配:/
我怎样才能正确地做到这一点?
#include <stdio.h>
#include <regex.h>
int main() {
regex_t regex;
int retis;
char* str = "1an:example";
retis = regcomp(®ex, "[a-z]:[a-z]", 0);
retis = regexec(®ex, str, 0, NULL, 0);
if(!retis) {
puts("Match");
}
else if(retis == REG_NOMATCH) {
puts("No match");
}
regfree(®ex);
return 0;
}
解决方案
推荐阅读
- css - 通过应用 SCSS 类来设置 toast 容器的样式
- mapster - 如何将值附加到现有值
- python - 将 If 与 While 循环一起使用会导致无限循环
- google-chrome - Chrome 中的 ERR_SSL_KEY_USAGE_INCOMPATIBLE
- list - 有一个字典列表,每个字典都有多个值。想要将每个唯一值变成一个键并计算它们的出现次数
- javascript - 使用 Postgres 和 NodeJs 查询多个表的最佳方式
- java - 为什么我用 toString() 得到相同的结果,但用 getClass().getName() 得到不同的结果
- wordpress - Wordpress htaccess 通过特定请求重写到子文件夹
- c++ - 在 C++ 中计算数组中的反转时得到错误的输出
- d3.js - 如何使用我自己的颜色表而不是使用 d3 颜色集 ( interpolateviridis ) 来创建图例