2011-02-19 83 views
1

我需要我的C#正則表達式只匹配完整的單詞,我需要確保+ -/*()分隔單詞以及(我不確定最後一部分是已經設置了這種方式。)我發現正則表達式非常混亂,並希望在這件事上得到一些幫助。我的正則表達式是:正則表達式設置單詞字符和匹配確切的單詞

public Regex codeFunctions = new Regex("draw_line|draw_rectangle|draw_circle"); 

謝謝! :)

回答

3

嘗試

public Regex codeFunctions = new Regex(@"\b(draw_line|draw_rectangle|draw_circle)\b"); 

\b裝置匹配字邊界,即從非字字符到字字符(或反之亦然)的過渡。

單詞字符包括字母字符,數字和下劃線符號。非單詞字符包括其他所有內容,包括+-/*(),因此它應該適合您。

查看Regex Class documentation瞭解更多詳情。

@字符串的開始,使字符串verbatim string,否則你必須鍵入兩個反斜槓,使一個反斜槓。

+0

它似乎不匹配任何東西 – pajm 2011-02-19 06:12:21

0

你想匹配任何單詞,或只是上面列出的單詞嗎?如果你想要更多的字符被視爲空白(例如,下劃線),我會建議字符串

new Regex (@"\b(\w+)\b"); 

在未來,:要匹配這樣的任意單詞,替代這次爲創建正則表達式對象位。將它們替換爲空格字符。用正則表達式獲得相同效果可能有一個聰明的辦法,但我個人認爲這太聰明瞭。 String.Replace版本很明顯。

此外,我不禁建議您閱讀正則表達式。是的,他們看起來像線路噪音,直到你習慣他們,但一旦你做到了,他們很方便,並有很多好的資源可以幫助你。

相關問題