2011-02-09 60 views
0

我想查找使用正则表达式在下面的句子中使用单词“亲爱的”的次数。有任何想法吗?所以在这个例子中,我应该得到4找到句子中的单词数

你好亲爱的朋友,这是一个字符串,其中包含字亲爱的重复;所以亲爱的,如果你能保持字亲爱的使用计数,这将是伟大

+1

5?你确定?不是4? –

+1

我也在统计4. – driis

+1

你是对的:( – imak

回答

5
Regex reg = new Regex("\\bdear\\b", RegexOptions.IgnoreCase); 
int count = reg.Matches(input).Count; 

还是我失去了你的问题的东西吗?

+0

我几乎很尴尬地说,虽然我认为会有这样一些简单的选择,但我尝试的第一件事是“[Dd] [Ee] [Aa ] [Rr]“... –

+1

这并不折扣”最亲爱的“ – RichardTheKiwi

+0

@driis你什么也没有丢失,只是懒得谷歌它:) – imak

1

正如你所说的那样,你不需要为此使用正则表达式。如果可以,通常应该使用字符串操作而不是正则表达式;在这种情况下,如果您的目标(您的示例中的dear)将成为整个有效选择类别,则只需要它。

除非是这种情况,否则我建议使用字符串操作。一种可能性:

int count = source.ToLower().Split("dear").Length - 1; 

我不必使用ToLower()开到更有效率的版本,但对于大多数的目的,我不会担心。它应该比正则表达式更快。

+0

真的,我认为使用正则表达式更好的表现明智吗? – imak

+0

这个解决方案也会算''最亲爱的'' – digEmAll

+0

为什么-1?为了消除“最亲爱的”?这将适用于这个特定的句子,但不适用于一般情况。 –