Я не могу понять это:
22.584\r\n\t\t\tl-6.579-22
Я хочу соответствовать "\r\n\t\t\t" и заменить на один пробел " ". Проблема в том, что число "\t", "\r" и "\n" колеблется, как и окружающие символы.
"\r\n\t\t\t"
" "
"\t"
"\r"
"\n"
Помощь!
s/\s+/ /g
s/(?:\\[rnt])+/ /g
Я бы рассматривал CR-NL как один атом:
str.gsub!(/(?:\r\n)+\t+/, ' ')
#!/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"
'22.584\r\n\t\t\tl-6.579-22'.gsub(/(\\[rnt])+/, ' ')
sed 's/\\[rnt]/ /g;s/ */ /g'
В PHP:
preg_replace("/(?:\\\[trn])+/", " ", $str);