2016-03-23 12 views
0

私は現在、それらの後ろに空白がないすべてのカンマとすべてのコロンをつかむ式を作成しようとしています。スペースのないカンマの正規表現

私は近くにある(,([^\s]))|([:])を試しましたが、スペースを持たないカンマの後に文字をつかむようです。

また、私は(,\s+)|([:])を試しました。これは、すべてのコロンとすべてのカンマをスペースとスペースの後ろにつけます。

私が望む何次に* *で囲まれ、選択する:

こんにちは、私の名前は*:* tibsar *、*大丈夫?

+1

期待どおりの一致がいくつかありますか? –

+0

@noobが質問を更新しました。 –

答えて

7

私はこの正規表現が仕事をすると思います。

正規表現:(,(?=\S)|:)

説明:

  • (?=\S)文字のためのこのpositive lookaheadチェック,whitespaceではなく、試合ににそれをキャプチャしません。 [^\s]\Sと同じです。

  • |と一致するように改変を使用しました。どこにでも表示される可能性があります。:

Regex101 Demoあなたは(,([^\s]))|([:])(,\s+)|([:])で間違っていた

To match , at end of line(if needed).


  • (,([^\s]))んが非空白続くカンマが一致するが、それはまたは試合でそれをキャプチャします。

  • (,\s+) Straightawayは、コンマの後にの空白が続くので完全に間違っています。

+0

が機能しました!私はできるときに決着をつけるでしょう –

+0

それはうれしいです。 –

+0

これは、文字列の最後が機能しないことに注意してください(文字列の末尾が文字ではないため、 '\ S'と一致しません)。たぶん、* negative * lookaheadを '、(?!)'の代わりに使うべきでしょう。 @tibsar: '\ S'(と' \ s')は非常に広範であり、単なるスペース以上のものです。スペースとタブの区別が重要です。 – Joey

関連する問題