C#使用Regex提取以:开头的单词

时间:2018-06-19 16:10:48

标签: c# regex

我正在尝试使用C#从句子中提取诸如以下的单词。

示例句子:狗的:found $ bone和:found $ water

我尝试使用以下正则表达式

@"(?<!\w):\w+", RegexOptions.Compiled | RegexOptions.IgnoreCase)

这只会在“比赛”中返回“找到”。为什么它忽略了美元,我该如何解决?

1 个答案:

答案 0 :(得分:0)

您的正则表达式仅与单词字符匹配,而与$不匹配。更新字符类,使其包含$字符和类似[\w$]的字符。正则表达式的其他方面似乎使事情变得过于复杂,因此最终的正则表达式可能看起来像

\s:([\w$]+)

查找空格,后跟冒号,后跟一个或多个单词字符或$字符。

根据您实际上对捕获感兴趣的内容,可以使用

这样的正则表达式。
\s:(\w+)$(\w+)

.NET Fiddle上的示例