2015-05-18 63 views
2

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

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

回答

5

如果你想有一个C字符串常量包含一个反斜杠,那么你需要逃生它使用\\

"\\b\\w*name\\w*\\b" 
+0

你的意思是像“\\ ​​b \\ w * name \\ w * \\ b”? – YoarkYANG

+0

绝对如此。正如我写的那样。 – Bathsheba

+0

谢谢,它的作品@Bathsheba – YoarkYANG

0

事实上,逃逸是一个问题,而且还使用name变量而不是简单的字符串:regexec

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

对不起,那个“名字”是我想要比较的那个,输入的名称字符串是我想要成为正则表达式的一部分,对不起,我没有说清楚。已编辑,谢谢 – YoarkYANG