我正在嘗試構建一個只匹配下面的string2的正則表達式。RegEx.Match不返回預期結果
串1:(ABC12:CPBI,OTCBB:CPBI)
串2:(ABC12:CPBI OTCF CPBI)
以下是我的C#代碼
private static Regex rxSymbol = new Regex(@"(?<=:)[&/\w -]+\s*(?=\))", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
rxSymbol.IsMatch(ticker)
isMatch語句返回對於string1爲true。當我試圖使用rxSymbol.Match(ticker)
獲得完全匹配時,這與「CPBI」匹配。
在我的代碼中使用之前,我在RegexHero中測試了這個正則表達式。它在正則表達式英雄中正常工作。
有人可以幫我弄清楚我的正則表達式有什麼問題。
更新:
我意識到的問題是什麼: 我想要的正則表達式來僅在第一之間的文本返回true:和第一),此模式匹配:/ [&/\ W - ] + \ S */
在我的例子字符串(ABC12:CPBI,OTCBB:CPAA)有兩個:
和正則表達式是匹配第二之間的文本:和)
如何修改這個正則表達式來執行我的要求。
必須轉義正斜槓。你的表達式可以在你的示例字符串中找到:http://rubular.com/r/4ZFl3222jT,只是轉義正斜槓。它應該/不應該做什麼? – deltree 2012-02-06 17:10:27
感謝您的評論。 C sharp正則表達式能夠處理正斜槓而不會溢出。可能是因爲正則表達式模式被包含在「」中,而不是在javascript中。但是你的紅細胞樣本幫助我意識到它與第二個結腸之間的文本匹配)。 – 2012-02-06 17:40:31