2011-02-09 17 views
0

Regexを使用して次の文で単語 "dear"が使用されています。何か案は?この例では、私は4を取得する必要があります文中の単語の数を見つける

こんにちはDEARフレンド、これは単語のリピートを含む文字列です。あなたが使用親愛なる単語の数を保つことができるのであれば私の愛する、それは

+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 ] [...] –

+1

それは "愛する" – RichardTheKiwi

+0

@driisを値引きしていませんあなたは何も見逃していません、グーグルにあまりにも怠け者でした:) – imak

1

あなたが質問したように、正規表現を使用する必要はありません。可能であれば正規表現の代わりに通常は文字列操作を使うべきです。この場合、ターゲット(例ではdear)が有効な選択肢のクラス全体になる場合にのみ必要です。

そうでなければ、代わりに文字列操作をお勧めします。一つの可能​​性:

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

私はToLower()を使用することなく、より効率的なバージョンに開いているが、ほとんどの目的のために、私はそれについて心配しないでしょう。それはまだ正規表現よりも速いはずです。

+0

本当に、私は正規表現を使用してより良いパフォーマンスが賢明だと思った? – imak

+0

この解決策はまた、 "最愛" " – digEmAll

+0

-1をカウントするでしょうか? "最愛の人"を排除するために?それはこの特定の文では機能しますが、一般的な場合には機能しません。 –

関連する問題