Я хочу заменить все более двух пробелов в строке, но не новые строки, у меня есть это регулярное выражение: \s{2,}
но оно также соответствует новым строкам.
Как сопоставить только 2 или более пробелов, а не новые строки?
Я использую c #
Я хочу заменить все более двух пробелов в строке, но не новые строки, у меня есть это регулярное выражение: \s{2,}
но оно также соответствует новым строкам.
Как сопоставить только 2 или более пробелов, а не новые строки?
Я использую c #
Ответы:
Поместите символы пробела, которые вы хотите сопоставить, внутри класса символов. Например:
[ \t]{2,}
соответствует 2 или более пробелам или табуляциям.
Вы также можете:
[^\S\r\n]{2,}
который соответствует любому символу с пробелом, кроме \r
и \n
как минимум дважды (обратите внимание, что заглавная буква S
in \S
является сокращением от [^\s]
).
\s{2,}
захватывает новые строки? Если бы это было так, \n\s{2,}
я бы понял. И почему ввод буквального пробела в скобках работает?
\s
соответствует пробелам, табуляциям и переносам строк. «И почему ввод буквального пробела в скобках работает?», Ну, ошибаюсь, потому что это так. Не знаю, что еще сказать об этом :)