行末の空白と一致しない

行末の空白と一致しない

正規表現を使用して空白を置き換えると、\s は行内のスペースだけでなく、行末にも一致します。行内の空白のみを置き換えるようにこれを修正するにはどうすればよいでしょうか。

答え1

\sあらゆる種類の空白、つまり単純なスペース、タブ、改行などを表します。

\h水平方向のスペースにはスペースまたはタブを使用できます。

単語間のスペースのみを一致させたい場合は、次のようにします。(?<=\S)\h+(?=\S)

どこ

  • (?<=\S)は、空白文字が前にないことを保証する肯定的な後読みです。
  • (?=\S)後に空白がないことを確認する肯定的な先読みです。

答え2

すべての空白文字を選択するのではなく、必要な特定の空白文字を一致させることができます。

たとえば、1 つ以上のスペースとタブを一致させるには、 を使用します[ \t]+。スペースと \t 文字が一致することに注意してください。

関連情報