2015-05-18 101 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