如何使用正则表达式匹配部分字符串

时间:2015-05-18 12:26:20

标签: c regex

我想使用正则表达式来匹配给定字符串的一部分。你看,我输入一个名称的字符串并与正则表达式匹配,所以,我希望这个名称成为整个字符串的一部分,在中间,开始或结束,甚至整个字符串,所以,如何在C中编写我的正则表达式

scanf("%99s", name);
reti = regcomp(&regex, "\b\w*name\w*\b", 0);
reti = regexec(&regex, "something...", 0, NULL, 0);  

2 个答案:

答案 0 :(得分:5)

如果您希望C字符串文字包含反斜杠,则需要使用\\ 转义

"\\b\\w*name\\w*\\b"

答案 1 :(得分:0)

确实,转义是一个问题,但也使用name变量而不是regexec的普通字符串:

reti = regcomp(&regex, "\\b\\w*name\\w*\\b", 0);
reti = regexec(&regex, name, 0, NULL, 0);