Не сопоставляйте пробелы в конце строки

Не сопоставляйте пробелы в конце строки

Когда я использую регулярное выражение для замены пробелов, \s также соответствует концу строки, а не только пробелу в строке. Как мне исправить это, чтобы просто заменить пробелы в строке.

решение1

\sобозначает любой вид пробела, т. е. простой пробел, табуляцию, перенос строки...

\hДля горизонтального пространства можно использовать : пробел или табуляцию.

Если вы хотите найти только пробелы между словами, вы можете использовать:(?<=\S)\h+(?=\S)

где

  • (?<=\S)это положительный просмотр назад, который гарантирует, что перед нами нет пробелов
  • (?=\S)— это положительный просмотр вперед, который гарантирует, что после него не будет пробелов.

решение2

Вы можете сопоставить определенные нужные вам пробельные символы, а не выбирать все пробельные символы.

Например, чтобы сопоставить один или несколько пробелов и табуляций, используйте [ \t]+. Обратите внимание, что будут сопоставляться символы пробела и \t.

Связанный контент