因此,我感兴趣的是尝试使用 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/