不匹配行末的空格

不匹配行末的空格

当我使用正则表达式替换空格时,\s 不仅匹配行中的空格,还匹配行尾。我该如何纠正这个问题,只替换行中的空格?

答案1

\s代表任何类型的空白,即简单空格、制表符、换行符……

您可以使用\h水平空间:空格或制表符。

如果只想匹配单词之间的空格,可以使用:(?<=\S)\h+(?=\S)

在哪里

  • (?<=\S)是一个积极的后视,确保前面没有空格
  • (?=\S)是一种积极的前瞻,确保之后没有空格。

答案2

您可以匹配所需的特定空格字符,而不是选择所有空格字符。

例如,要匹配一个或多个空格和制表符,请使用[ \t]+。请注意,空格和 \t 字符将被匹配。

相关内容