正则表达式剥离\ r和\ n或\ r \ n

时间:2012-02-02 05:36:21

标签: ruby regex

我使用以下正则表达式来制作换行符标签:

str.gsub("\r\n", '<br>')

这在桌面上运行良好。在iphone文本上只有\ n,它没有\ r。

我如何才能使正则表达式支持? \ r \ n或只是\ n?

由于

5 个答案:

答案 0 :(得分:12)

我认为

str.gsub(/\r?\n/, '<br>')

应该做的工作

答案 1 :(得分:9)

\r\n|\r|\n

这个正则表达式也可以让你支持Mac,它只使用\r作为行尾。由于正则表达式是贪婪的,如果可能的话,它们将匹配\r\n而不是单个的。{/ p>

答案 2 :(得分:1)

?运算符将接受0或前一个元素之一,因此\r?\n应接受\r or \n or \r\n

答案 3 :(得分:1)

这可能是最简单的方法:

str.gsub(/\R/, '<br>')

/\R/适用于Mac / Linux / Windows,包含更多异国情调的unicode换行符。

答案 4 :(得分:0)

\r?\n|\r

\r?\n将匹配\n\r\n

\r只匹配\r

这适用于Windows \ Mac \ Linux EOL。