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