我想使用正則表達式來匹配給定字符串的一部分。你看,我輸入一個字符串名稱和匹配的正則表達式,所以,我想這個名稱是整個字符串的一部分,在中間,開始或結束,甚至整個字符串,所以,如何寫我的正則表達式在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