如何使用正则表达式来获取以!
?
开头的单词,例如!Test
。
我尝试了这个,但它没有给出任何匹配:
@"\B\!\d+\b"
虽然我用!
替换$
时确实有效。
答案 0 :(得分:6)
我说你的正则表达式已经很好了,你只需要使用\w
(字母数字字符)代替\d
(数字):
@"\B!\w+\b"
将匹配紧跟!
之前的任何单词,除非!
本身前面有一个单词本身(这就是\B
声明的内容)。使用^
会将匹配限制为从行开头开始的单词,这可能不是您想要的。
所以这将匹配所有单词,包括此行中!
之前的一个单词:
!hello !this ...!will !!!be !matched!
但这一行中没有一句话:
this! won't!be matched!!!
如果您不介意在\B
中匹配!that
,也可以完全放弃this!that
。
答案 1 :(得分:4)
这应该有效:^!\ w +
MatchCollection matches = Regex.Matches (inputText, @"^!\w+");
foreach (Match match in matches)
{
Console.WriteLine (match.Value);
}