我的正则表达式有什么问题(简单)?

时间:2010-08-18 04:57:58

标签: c# regex

我正在尝试创建一个正则表达式,该正则表达式匹配所有出现在一行开头的单词并以#开头。

例如:

#region #like
#hey

它会匹配#region和#hey。

这就是我现在所拥有的:

^#\w*

我为发布这个问题而道歉。我确信它有一个非常简单的答案,但我一直无法找到它。我承认我是一名正则表达式的人。

3 个答案:

答案 0 :(得分:5)

你应该做什么,取决于你为RegexOptions传递的标志。您需要确保通过RegexOptions.Multiline

var matches = Regex.Matches(input, @"^#\w*", RegexOptions.Multiline);

请参阅我上面链接的文档:

  

多线多线模式。更改^和$的含义,使它们分别在任何行的开头和结尾匹配,而不仅仅是整个字符串的开头和结尾。

答案 1 :(得分:1)

正则表达式看起来很好,请确保使用逐字字符串文字(@前缀)来定义正则表达式,即@"^#\w*"否则反斜杠将被视为转义序列

答案 2 :(得分:0)

使用此正则表达式

^#.+?\b

.+将确保在#\b之后至少有一个字符表示单词边界。 ?会向+运算符添加非贪婪,以避免匹配整个字符串#region #like