C#正则表达式开头的话?

时间:2010-10-17 04:23:00

标签: c# regex

如何使用正则表达式来获取以! ?开头的单词,例如!Test

我尝试了这个,但它没有给出任何匹配:

@"\B\!\d+\b"

虽然我用!替换$时确实有效。

2 个答案:

答案 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);
 }