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

2 ответа2

0

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

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

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

где

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .