我知道這個問題似乎是平庸的,但我有一個小問題。我想匹配類似於輸入到這一點:如何匹配第一個單詞?
%!: Word Word=888 Word=AAA
...使用此正則表達式:
[A-Za-z]*
我只需要選擇第一個字whitch包含只字符。 我的C#代碼:
string res = Regex.Match("[A-Za-z]*", this.Content, RegexOptions.Singleline).Value;
請幫幫我。這不適合我。
我知道這個問題似乎是平庸的,但我有一個小問題。我想匹配類似於輸入到這一點:如何匹配第一個單詞?
%!: Word Word=888 Word=AAA
...使用此正則表達式:
[A-Za-z]*
我只需要選擇第一個字whitch包含只字符。 我的C#代碼:
string res = Regex.Match("[A-Za-z]*", this.Content, RegexOptions.Singleline).Value;
請幫幫我。這不適合我。
你基本上就在那裏。
你的正則表達式應該是@"\b[A-Za-z]+\b".
然後,如果你想知道爲什麼你沒有得到任何比賽。這是因爲你混了輸入和模式參數:)
你想:
string res = Regex.Match(this.Content, @"\b[A-Za-z]+\b", RegexOptions.Singleline).Value;
NOT:
string res = Regex.Match(@"\b[A-Za-z]+\b",this.Content, RegexOptions.Singleline).Value;
:)
+1對於參數順序很好。 –
失敗!謝謝! :D愚蠢的錯誤。 – user35443
[A-Za-z] +觀察括號中的任何事件的一個或多個發生。該*將匹配零個或多個出現。
將胡蘿蔔^
添加到表達式的開頭以匹配從開始,也就是僅第一個。
另一種選擇(如果這可能是有用的需要選擇其他的詞)是匹配所有單詞並先挑選:
new Regex(@"\b[A-Za-z]+\b").Matches("%!: Word Word=888 Word=AAA")[0]
如果輸入的字符串是100兆字節?啊,你只是編輯添加「(如果你還需要選擇其他的話,這可能很有用)。」好的。很公平。 :) – aquinas
@aquinas,是的,會是災難...... OP的輸入感覺就像某種日誌文件的一些半格式化的字符串 - 所以可能會有用。 –
試試這個'@「\ b [A-Za-z] + \ b」' – climbage