如何匹配第一个单词?

时间:2012-05-30 17:24:11

标签: c# regex text input match

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

%!: Word Word=888 Word=AAA

...使用这个正则表达式:

[A-Za-z]*

我只需要选择包含字符的第一个单词。 我的C#代码:

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

请帮帮我。它不适合我。

4 个答案:

答案 0 :(得分:5)

你基本上就在那里。

你的正则表达式应该是@"\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 :(得分:1)

[A-Za-z] +在括号中观察一次或多次出现的事情。 *将匹配零次或多次出现。

答案 2 :(得分:1)

另一个选项(如果你需要选择其他单词可能会有用)是匹配所有单词并先选择:

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

答案 3 :(得分:0)

将胡萝卜^添加到表达式的开头,以便从头开始匹配,也就是第一次。