2011-10-28 155 views
0

考慮以下幾點:正則表達式和字符串

string keywords = "(load|save|close)"; 
Regex x = new Regex(@"\b"+keywords+"\b"); 

我沒有得到任何比賽。但是,如果我這樣做:

Regex x = new Regex(@"\b(load|save|close)\b"); 

我得到匹配。前者如何不起作用,我該如何解決這個問題?基本上,我想要關鍵字是可配置的,所以我把它們放在一個字符串中。

+0

我明白了。我錯過了一些非常明顯的東西。 – david

回答

3

忘記附加@你錯過了另一個逐字字符串說明(@前綴最後\b):

Regex x = new Regex(@"\b" + keywords + @"\b"); 
8

第一個代碼段中的最後一個\b需要在它前面的逐字字符串說明符(@)以及它是一個單獨的字符串實例。

string keywords = "(load|save|close)"; 
Regex x = new Regex(@"\b"[email protected]"\b"); 
+0

+1快速的眼睛:) – FailedDev