我正在尝试创建一个正则表达式,该正则表达式匹配所有出现在一行开头的单词并以#开头。
例如:
#region #like
#hey
它会匹配#region和#hey。
这就是我现在所拥有的:
^#\w*
我为发布这个问题而道歉。我确信它有一个非常简单的答案,但我一直无法找到它。我承认我是一名正则表达式的人。
答案 0 :(得分:5)
你应该做什么,取决于你为RegexOptions传递的标志。您需要确保通过RegexOptions.Multiline
:
var matches = Regex.Matches(input, @"^#\w*", RegexOptions.Multiline);
请参阅我上面链接的文档:
多线多线模式。更改^和$的含义,使它们分别在任何行的开头和结尾匹配,而不仅仅是整个字符串的开头和结尾。
答案 1 :(得分:1)
正则表达式看起来很好,请确保使用逐字字符串文字(@前缀)来定义正则表达式,即@"^#\w*"
否则反斜杠将被视为转义序列
答案 2 :(得分:0)
使用此正则表达式
^#.+?\b
.+
将确保在#
和\b
之后至少有一个字符表示单词边界。 ?
会向+
运算符添加非贪婪,以避免匹配整个字符串#region #like