2017-01-20 3 views
-1

私は文字列の間に1つの空白文字を維持しようとしています、ドットの文字列の繰り返しマークの量を制限する、コンマ、それはホワイトスペースの間にあり、ホワイトスペースでそれを保ちます。特定のマーク以外のマークbeetwenワードの組み合わせの組み合わせ

クエスチョンマークがドットの前に、私は両方を維持したい場合、私は例えば、入力文字列がある場合には、疑問符を除き、単語間のみ1をすべてのマークのための量を制限し、維持したい:今

hello,,, world, how are you?.. hi...,.,. 

hello, world, how are you? hi. 

が、所望の出力は次のようになります:私の結果は

hello, world, how are you?. hi. 

ありません確かにそれを行うにはどのように

+3

"?"文章では本当に貧しい文法です、なぜそれは正しい答えでしょうか?あなたの結果は正しいでしょう - Hiは大文字にする必要があります。 – BugFinder

+0

疑問符の後にピリオドは必要ありませんか? – shash678

+0

出力は必要に応じて、[this regex demo](http://regexstorm.net/tester?p=%5cs*%28%5c%7c%2c%29%7b1%2c)をご覧ください。 %2d。%2c。%2c%2c%2c%2c%2c%2c%2c%2c%タブをクリックします)。 –

答えて

2

A非常に簡単な解決策は、それはカンマやドットと一致し、それはキャプチャグループにだから、最後のインスタンスを撮影します

([.,])+|()+ 

である可能性があります。キャプチャのためにマッチを交換すると、残っているのは1つだけになります。

複数のスペースを処理するには、別のキャプチャグループを追加します。スペースにマッチし、最後をキャプチャします。したがって、両方のキャプチャとの一致を交換すると、句読点とスペースの両方が処理されます。

See the updated example here at regex101