我用下面的正則表達式來使換行符
標籤:正則表達式剝離 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