2016-10-23 15 views
0

文字列内の特定の記号の量を制限する方法たとえば、入力がある場合は、"Hello ,,,, world .... "例えばテキストドキュメントに書き込むには、" hello、world "としたいと思っています。すべての余分なものを取り除き、単語間に1つの記号だけを置きます。カンマとドットの場合に限り、文字を繰り返すことができます。文字列内の特定の記号の量を繰り返す方法を制限する方法

var text = "Hello,,,, world....."; 

var result = Regex.Replace(text, @"(\.|,){2,}", m => m.Value.First().ToString()); 

正規表現@"(\.|,){2,}".または発生, 2回以上にマッチし、その中の最初の文字をマッチグループを置き換えます:

答えて

1

あなたはこのような何かを行うことができます。

+0

、こんにちは、この制限に他の記号(カンマ、ドット、感嘆符など)を追加したい場合、最初に2つのことを明確にするとよいでしょう。私はそれをファイルに渡したいのですが、テキストボックス 'textBox1.Text = Regex.Replace(textBox1.Text、@"(\。|、){2、もし私が** helloを書くなら、それは私のカーターを余分なシンボルを持つ行頭にスローし、私はこれを得ます**、こんにちは、 ** –

+0

私はこのように '@ '(\!|:{2}}(\。|、){2、}' 'のようにすることができますが、最初にキャレットをスローします –

0
([A-Za-z ]+)([,\.])?([^A-Za-z]+)([A-Za-z ]+)([,\.])?([^A-Za-z]+) 

このクエリは文字と一致し、1つのカンマまたはピリオドを受け入れ、残りの部分を食べて繰り返します。

+0

こんにちは、' @ ([A-Za-z] +)([A-Za-z] +)([A-Za-z] +) Za-z] +) "私は間違ったことをやっているかもしれないが、私がこのように使うと記号を繰り返した後、ある点で文字列全体をカットし、 –