Регулярное выражение: сопоставить эту строку - PullRequest
3 голосов
/ 27 января 2010

Я не могу понять это:

22.584\r\n\t\t\tl-6.579-22

Я хочу соответствовать "\r\n\t\t\t" и заменить на один пробел " ". Проблема в том, что число "\t", "\r" и "\n" колеблется, как и окружающие символы.

Помощь!

Ответы [ 6 ]

4 голосов
/ 27 января 2010

s/\s+/ /g

s/(?:\\[rnt])+/ /g
0 голосов
/ 27 января 2010

Я бы рассматривал CR-NL как один атом:

str.gsub!(/(?:\r\n)+\t+/, ' ')
0 голосов
/ 27 января 2010
#!/usr/bin/ruby1.8

s = "22.584\r\n\t\t\tl-6.579-22"
p s                           # => "22.584\r\n\t\t\tl-6.579-22"
p s.gsub(/[\r\n\t]+/, ' ')    # => "22.584 l-6.579-22"
0 голосов
/ 27 января 2010
'22.584\r\n\t\t\tl-6.579-22'.gsub(/(\\[rnt])+/, ' ')
0 голосов
/ 27 января 2010
sed 's/\\[rnt]/ /g;s/  */ /g'
0 голосов
/ 27 января 2010

В PHP:

preg_replace("/(?:\\\[trn])+/", " ", $str);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...