我需要我的C#正則表達式只匹配完整的單詞,我需要確保+ -/*()分隔單詞以及(我不確定最後一部分是已經設置了這種方式。)我發現正則表達式非常混亂,並希望在這件事上得到一些幫助。我的正則表達式是:正則表達式設置單詞字符和匹配確切的單詞
public Regex codeFunctions = new Regex("draw_line|draw_rectangle|draw_circle");
謝謝! :)
我需要我的C#正則表達式只匹配完整的單詞,我需要確保+ -/*()分隔單詞以及(我不確定最後一部分是已經設置了這種方式。)我發現正則表達式非常混亂,並希望在這件事上得到一些幫助。我的正則表達式是:正則表達式設置單詞字符和匹配確切的單詞
public Regex codeFunctions = new Regex("draw_line|draw_rectangle|draw_circle");
謝謝! :)
嘗試
public Regex codeFunctions = new Regex(@"\b(draw_line|draw_rectangle|draw_circle)\b");
的\b
裝置匹配字邊界,即從非字字符到字字符(或反之亦然)的過渡。
單詞字符包括字母字符,數字和下劃線符號。非單詞字符包括其他所有內容,包括+-/*()
,因此它應該適合您。
查看Regex Class documentation瞭解更多詳情。
的@
字符串的開始,使字符串verbatim string,否則你必須鍵入兩個反斜槓,使一個反斜槓。
你想匹配任何單詞,或只是上面列出的單詞嗎?如果你想要更多的字符被視爲空白(例如,下劃線),我會建議字符串
new Regex (@"\b(\w+)\b");
在未來,:要匹配這樣的任意單詞,替代這次爲創建正則表達式對象位。將它們替換爲空格字符。用正則表達式獲得相同效果可能有一個聰明的辦法,但我個人認爲這太聰明瞭。 String.Replace版本很明顯。
此外,我不禁建議您閱讀正則表達式。是的,他們看起來像線路噪音,直到你習慣他們,但一旦你做到了,他們很方便,並有很多好的資源可以幫助你。
它似乎不匹配任何東西 – pajm 2011-02-19 06:12:21