c - c中正则表达式在strcmp函数中的使用

标签 c regex

因此,我感兴趣的是尝试使用 getline 读取一行并查找特定阶段,如果我看到类似“verbose on”或“verbose off”的内容,我知道我想做什么,但是如果它是“冗长的“某事””然后我想出错。我很确定这将需要正则表达式,因为后面的内容是任意的。对这个问题的一些见解将不胜感激。谢谢。

strcmp(buf,"verbose on")==0
strcmp(buf,"verbose off")==0
strcmp(buf,"verbose "regex expression here im thinking"")==0

这就是我认为应该进行的方式,只需要一点插入。

最佳答案

不需要正则表达式。您可以使用 strncmp :

strncmp(buf, "verbose", strlen("verbose")) == 0

这只比较前 7 个字符,因此它将匹配任何以“verbose”开头的 buf

注意:我对魔数(Magic Number)过敏,但如果您愿意,您当然可以用文字 7 替换 strlen 调用.此外,对于实际代码,我会用常量替换重复的字符串文字。

关于c - c中正则表达式在strcmp函数中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23595397/

相关文章:

c - 获取 float 的长度

用 perl 替换正则表达式 EOL 会产生意想不到的结果

Python/Regex - 括号和斜杠的扩展

c - 在 C 中多线程时同步无法正常工作

c - 它是可移植的编译库吗?

c - 在单字节数组中对齐混合字符串和整数数据的方法有哪些?

php - 查询和 DB_Select 之间的 zend 转换

C 字符串编码 Windows/Linux

python - 使用 (.|\s)* 后仅返回一个匹配项

regex - 如何使用 RE2 正则表达式匹配两个字符串之间的子字符串?