2016-05-26 24 views
0

テキストの後に\ n \ n \ n(3改行)を使用した回数を数えようとしています。それは私が好きなようにほとんどカウントされますが、問題は、あなたが望んでいないものに数えられる改行をスパムするときです。正規表現の一致パターン

編集:regexrの正規表現が.netをサポートしていないように見えるので、.netで動作するパターンが必要です。正規表現は、上のチェックするテキストの

例:何か

ため

説明

テキスト\ N \ N \ N //これは何か

ためDescriptionAmount ++

説明を行います

テキスト\ n \ n \ n //これが行われます。DescriptionAmount ++

\ n \ n \ n //これは説明文に追加しないでください。

これまでに行ったコードは次のとおりです。

int DescriptionAmount = Regex.Matches(somestring, "[^\w$](\r\n){2}[^\w$]").Count; 

答えて

0

いくつかのテキストは以下のようなものを取るとした後、あなたは3つの改行をキャプチャ確保するために:これは、.NETですので

\w+\s*\n{3} 

、あなたのどちらかが前に@を置く必要があります。

@"\w+\s*\n{3} 

かあなたは3を探していることを述べた

"\\w+\\s\n{3} 

:のようなスラッシュをエスケープですが、検索結果は\r\nです。あなたの代わりに\r\nを探している場合は、ちょうど\nの前で\rを追加し、上記の式で(\\r\\n)(\r\n)のために()で囲みます。

もうひとつは、いくつかの文字列内のテキストに応じて、あなたのような複数行のオプションに適用することもできます。より良い正規表現パターンの

Regex.Matches(somestring, "\\w\\s\n{3}", RegexOptions.Multiline) 
+1

ありがとう、@ "\ w + \ s *(\ r \ n){3}" \ r \ nのように見えるように修正されました。 – Lucy

1

量指定子{x、y}を使用して一致させるトークンの数を選択してみてください。

「*」は任意の\にマッチnは3番目のトークンの後になるという意味、直前の文字0または何回も一致します。

\ n {3}は、\ nが3回以上一致する必要があります。

私はこのツールを見つけるhttp://regexr.com/非常にビルドと正規表現のデバッグに便利です。

+0

おかげで、奇妙な部分は、私が今0カウントを取得することで、私はそのサイトを使用します。パターンは、テキストのあとに複数の改行と一致します。 – Lucy

+0

.net regexpsをテストするときにregexrを使用しないでください。構文はサポートされていません。 –

+0

それからあなたは何をお勧めしますか?これは、私が数えて0になるという理由、その構文が本当に間違っていることになります。 – Lucy

関連する問題