我想不通这个问题:
22.584\r\n\t\t\tl-6.579-22
我想匹配
"\r\n\t\t\t"
并用一个空格" "
替换它。问题在于"\t"
、"\r"
和"\n"
的数量波动,周围的字符也会变化。帮忙!
s/\s+/ /g
s/(?:\\[rnt])+/ /g
\s
匹配的不仅仅是\t
、\r
或\n
。它还匹配(在大多数情况下)这些:[ \t\n\x0B\f\r]
,但当然如果你觉得这样没问题也可以。 - Bart Kiers\\r
或类似内容)。 - neezer'22.584\r\n\t\t\tl-6.579-22'.gsub(/(\\[rnt])+/, ' ')
#!/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"
我将CR-NL视为一个单独的元素:
str.gsub!(/(?:\r\n)+\t+/, ' ')
在PHP中:
preg_replace("/(?:\\\[trn])+/", " ", $str);
sed 's/\\[rnt]/ /g;s/ */ /g'