当我使用正则表达式替换空格时,\s 不仅匹配行中的空格,还匹配行尾。我该如何纠正这个问题,只替换行中的空格?
答案1
\s
代表任何类型的空白,即简单空格、制表符、换行符……
您可以使用\h
水平空间:空格或制表符。
如果只想匹配单词之间的空格,可以使用:(?<=\S)\h+(?=\S)
在哪里
(?<=\S)
是一个积极的后视,确保前面没有空格(?=\S)
是一种积极的前瞻,确保之后没有空格。
答案2
您可以匹配所需的特定空格字符,而不是选择所有空格字符。
例如,要匹配一个或多个空格和制表符,请使用[ \t]+
。请注意,空格和 \t 字符将被匹配。