如何只匹配第一个单词

本文关键字:第一个 单词 | 更新日期: 2023-09-27 18:35:42

我知道这个问题似乎很平庸,但我有小问题。我正在尝试匹配类似于以下内容的输入:

%!: 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]

在表达式的开头添加一个胡萝卜^以从头开始匹配,即仅匹配第一个。