在句子中找到单词的数量

ima*_*mak 0 c# regex

我想找到使用正则表达式在后面的句子中使用单词"dear"的次数.有任何想法吗?所以在这个例子中我应该得到4

你好亲爱的朋友,这是一个包含单词重复的字符串; 所以,亲爱的,如果你能记住亲爱的用词,这将是伟大的

dri*_*iis 5

Regex reg = new Regex("\\bdear\\b", RegexOptions.IgnoreCase);
int count = reg.Matches(input).Count;
Run Code Online (Sandbox Code Playgroud)

或者我在你的问题中遗漏了什么?

  • @driis:这是错误的,因为`[^\w]`不是零长度匹配(实际上第三个匹配等于`"亲爱的;"`).使用`\ b`代替 - > [LINK](http://www.regular-expressions.info/wordboundaries.html) (3认同)
  • @driis:正如digEmAll所说,你应该使用`\ b`而不是`\ W`.使用`\ W`,它不会匹配字符串开头或结尾的"亲爱的". (2认同)