考慮以下幾點:正則表達式和字符串
string keywords = "(load|save|close)";
Regex x = new Regex(@"\b"+keywords+"\b");
我沒有得到任何比賽。但是,如果我這樣做:
Regex x = new Regex(@"\b(load|save|close)\b");
我得到匹配。前者如何不起作用,我該如何解決這個問題?基本上,我想要關鍵字是可配置的,所以我把它們放在一個字符串中。
考慮以下幾點:正則表達式和字符串
string keywords = "(load|save|close)";
Regex x = new Regex(@"\b"+keywords+"\b");
我沒有得到任何比賽。但是,如果我這樣做:
Regex x = new Regex(@"\b(load|save|close)\b");
我得到匹配。前者如何不起作用,我該如何解決這個問題?基本上,我想要關鍵字是可配置的,所以我把它們放在一個字符串中。
忘記附加@
你錯過了另一個逐字字符串說明(@
前綴最後\b
):
Regex x = new Regex(@"\b" + keywords + @"\b");
第一個代碼段中的最後一個\b
需要在它前面的逐字字符串說明符(@
)以及它是一個單獨的字符串實例。
string keywords = "(load|save|close)";
Regex x = new Regex(@"\b"[email protected]"\b");
+1快速的眼睛:) – FailedDev
Regex x = new Regex(@"\b"[email protected]"\b");
您之前第二"\b"
我明白了。我錯過了一些非常明顯的東西。 – david