簡體   English   中英

如何只匹配第一個單詞?

[英]How to match just first word?

我知道這個問題似乎很平庸,但是我有一個小問題。 我正在嘗試匹配類似於以下內容的輸入:

%!: Word Word=888 Word=AAA

...使用此正則表達式:

[A-Za-z]*

我只需要選擇第一個單詞, 包含字符。 我的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;

不:

string res = Regex.Match(@"\b[A-Za-z]+\b",this.Content,  RegexOptions.Singleline).Value;

:)

[A-Za-z] +觀看括號中任何事物的一個或多個發生。 *將匹配零個或多個事件。

另一種選擇(如果您還需要選擇其他單詞,可能會很有用)是匹配所有單詞並首先選擇:

new Regex(@"\b[A-Za-z]+\b").Matches("%!: Word Word=888 Word=AAA")[0]

將胡蘿卜^添加到表達式的開頭以從開頭匹配,也就是第一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM