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