文字列内の2つ以上の空白をすべて置き換えたいのですが、新しい行は置き換えません。この正規表現があります。\s{2,}
ただし、新しい行にも一致しています。
新しい行ではなく、2つ以上の空白のみを一致させるにはどうすればよいですか?
私はc#を使用しています
回答:
一致させたい空白文字を文字クラス内に配置します。例えば:
[ \t]{2,}
2つ以上のスペースまたはタブに一致します。
次のこともできます。
[^\S\r\n]{2,}
これ以外の任意の空白文字と一致する\r
と\n
(資本ことに注意してください二回、少なくともS
では、\S
の略です[^\s]
)。
\s{2,}
いきましたが、なぜそれを進める改行をつかむのですか?もしそうなら、\n\s{2,}
私は理解するでしょう。そして、なぜ括弧内にリテラルスペースを入力することが機能するのですか?
\s
スペース、タブ、改行に一致するためです。「そして、なぜ括弧内にリテラルスペースを入力することが機能するのですか?」、まあ、それは機能するからです。それについて他に何を言うべきかわからない:)