Когда я использую регулярное выражение для замены пробелов, \s также соответствует концу строки, а не только пробелу в строке. Как мне исправить это, чтобы просто заменить пробелы в строке.
решение1
\s
обозначает любой вид пробела, т. е. простой пробел, табуляцию, перенос строки...
\h
Для горизонтального пространства можно использовать : пробел или табуляцию.
Если вы хотите найти только пробелы между словами, вы можете использовать:(?<=\S)\h+(?=\S)
где
(?<=\S)
это положительный просмотр назад, который гарантирует, что перед нами нет пробелов(?=\S)
— это положительный просмотр вперед, который гарантирует, что после него не будет пробелов.
решение2
Вы можете сопоставить определенные нужные вам пробельные символы, а не выбирать все пробельные символы.
Например, чтобы сопоставить один или несколько пробелов и табуляций, используйте [ \t]+
. Обратите внимание, что будут сопоставляться символы пробела и \t.