我知道这个问题似乎很平庸,但我有一个小问题。我正在尝试匹配类似于此的输入:
%!: Word Word=888 Word=AAA
...使用这个正则表达式:
[A-Za-z]*
我只需要选择第一个单词 witch只包含字符。我的 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]
在表达式的开头添加一个胡萝卜^
以从头开始匹配,也就是只匹配第一个。