我知道这个问题似乎是平庸的,但我的问题很小。我正在尝试匹配类似于此的输入:
%!: Word Word=888 Word=AAA
...使用这个正则表达式:
[A-Za-z]*
我只需要选择包含仅字符的第一个单词。 我的C#代码:
string res = Regex.Match("[A-Za-z]*", this.Content, RegexOptions.Singleline).Value;
请帮帮我。它不适合我。
答案 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)
将胡萝卜^
添加到表达式的开头,以便从头开始匹配,也就是第一次。