2012-01-17 160 views
1

我有以下幾點:如何使用gsub替換換行符?

str = str.gsub(re, '<pre><code>\1</code></pre>' 

,輸出:

<pre><code>  stuff... 

我想爲<pre><code>本身是在其上線。我怎樣才能在那裏插入一個換行符?如果我輸入\n它顯示爲HTML。

回答

7

換行符需要用雙引號括起來。用雙引號,你需要一個額外的反斜槓的模式匹配:

str = str.gsub(re, "<pre><code>\n\\1\n</code></pre>" 
+0

要明確一點,'\ n''是「literal-slash,n」,而「\ n」'是「newline」。在單引號內部,反斜槓字符不是特殊的,除了'\''。 – tadman 2012-01-17 22:18:25

1

字符串連接可以幫助簡化問題,避免了傾斜牙籤綜合症:

str = str.gsub(re, '<pre><code>\1</code></pre>' 

變爲:

str = str.gsub(re, "\n<pre><code>\n" + '\1' + "\n</code></pre>\n" 

您可以看到它在IRB中的作用:

"\n<pre><code>\n" + '\1' + "\n</pre></code>\n" 
=> "\n<pre><code>\n\\1\n</pre></code>\n"