我想使用正则表达式来匹配给定字符串的一部分。你看,我输入一个字符串名称和匹配的正则表达式,所以,我想这个名称是整个字符串的一部分,在中间,开始或结束,甚至整个字符串,所以,如何写我的正则表达式在C。如何使用正则表达式匹配部分字符串
scanf("%99s", name);
reti = regcomp(®ex, "\b\w*name\w*\b", 0);
reti = regexec(®ex, "something...", 0, NULL, 0);
我想使用正则表达式来匹配给定字符串的一部分。你看,我输入一个字符串名称和匹配的正则表达式,所以,我想这个名称是整个字符串的一部分,在中间,开始或结束,甚至整个字符串,所以,如何写我的正则表达式在C。如何使用正则表达式匹配部分字符串
scanf("%99s", name);
reti = regcomp(®ex, "\b\w*name\w*\b", 0);
reti = regexec(®ex, "something...", 0, NULL, 0);
如果你想有一个C字符串常量包含一个反斜杠,那么你需要逃生它使用\\
:
"\\b\\w*name\\w*\\b"
事实上,逃逸是一个问题,而且还使用name
变量而不是简单的字符串:regexec
:
reti = regcomp(®ex, "\\b\\w*name\\w*\\b", 0);
reti = regexec(®ex, name, 0, NULL, 0);
对不起,那个“名字”是我想要比较的那个,输入的名称字符串是我想要成为正则表达式的一部分,对不起,我没有说清楚。已编辑,谢谢 – YoarkYANG
你的意思是像“\\ b \\ w * name \\ w * \\ b”? – YoarkYANG
绝对如此。正如我写的那样。 – Bathsheba
谢谢,它的作品@Bathsheba – YoarkYANG