我用下面的正则表达式来使换行符
标签:正则表达式剥离 r和 n或 r n
str.gsub("\r\n", '<br>')
能正常工作在桌面上。 iPhone上的文字只有\ n,它没有\ r。
我怎样才能让正则表达式支持呢? \ r \ n或只是\ n?
感谢
我用下面的正则表达式来使换行符
标签:正则表达式剥离 r和 n或 r n
str.gsub("\r\n", '<br>')
能正常工作在桌面上。 iPhone上的文字只有\ n,它没有\ r。
我怎样才能让正则表达式支持呢? \ r \ n或只是\ n?
感谢
\r\n|\r|\n
这正则表达式也会让你支持Mac电脑,它使用\r
单独作为一行结束。由于正则表达式很贪婪,如果可能的话,它们将匹配\r\n
而不是单个的。
那没用? str = str.gsub(“\ r \ n | \ r | \ n”,'
') –
AnApprentice
2012-02-02 05:41:47
我知道它有点用于..但现在它有2个BR ..我只想要一个? str = str.gsub(/ \ r \ n | \ r | \ n /,'
') –
AnApprentice
2012-02-02 05:44:52
嗯,这很奇怪。那么,如果你先用'\ r \ n'调用replace,那么它可能会更可靠,然后再次用'\ r | \ n'调用它,以避免regex混淆。 – 2012-02-02 05:46:46
的?
运营商将接受0或前面的元素之一,所以\r?\n
应该接受\r or \n or \r\n
这没有奏效。现在没有匹配? str = str.gsub(“\ r?\ n”,'
') –
AnApprentice
2012-02-02 05:41:11
The?需要去追求\ n。在这种情况下,它应该在符合条件/限制的条件之后。实际上,它正在限定'\ r'。这适用于我:'str = str.gsub(/ \ r(\ n)?/,'
')' –
aenw
2015-02-18 01:03:46
我觉得
str.gsub(/\r?\n/, '<br>')
应该做的工作
谢谢,但没有奏效:str = str.gsub(“/ \ r?\ n /”,'
') –
AnApprentice
2012-02-02 05:42:21
@AnApprentice你写的括号和正则表达式应该没有他们 - 我只是检查Ruby – Cheery 2012-02-02 05:47:14
不要对第一个参数使用双引号(“) – barley 2012-02-02 05:48:24
\r?\n|\r
\r?\n
将匹配\n
或\r\n
。
\r
只会匹配\r
。
这应该适用于Windows \ Mac \ Linux EOL。
这可能是最简单的方法:
str.gsub(/\R/, '<br>')
/\R/
作品为Mac/Linux/Windows的,包括更多的外来unicode的换行符。
非常感谢!也更容易记住和更强大。 – 2016-12-22 16:48:32
我不知道Ruby,但标准的东西是str.gsub(“\ r?\ n”,'
')。尝试一下。 – Cheery 2012-02-02 05:38:33
谢谢,试过了,但没有奏效。 str = str.gsub(“\ r?\ n”,'
')没有一个br标记 – AnApprentice 2012-02-02 05:43:27