2016-01-13 111 views
-2

我的輸入字符串是:正則表達式雙引號內匹配特殊字符

"& is here "& is here also, & has again occured"" 

在Ruby語言使用GSUB方法,有沒有辦法來替代字符「&」,這與性格「雙引號內的存在的$',如果gsub方法不能解決這個問題,還有其他方法可以用來解決這個問題。

由於GSUB方法首先arguement可以是正則表達式,所以匹配正則表達式,將由第二arguement取代,得到一個正確的正則表達式,用於識別可能也解決了這個問題,因爲它可以在GSUB方法來代替替換「& '與'$'。

預期的輸出結果顯示:

& is here "$ is here also , $ has again occured" 
+0

用英文書寫時請用英文標點符號。 – sawa

+1

我會匹配引用的子字符串並替換每個匹配內的&符號。 –

+0

使用正則表達式不能以任何可靠的方式完成。 – pguardiario

回答

1
str = %q{& is here "& is here also , & has again occured"} 
str.gsub!(/".*?"/) do |substr| 
    substr.gsub(/&/, '$') 
end 
puts str 
# => & is here "$ is here also , $ has again occured" 

編輯:只注意到stribizhev提出這樣之前,我寫的。

+0

我是新來的正則表達式,你能解釋/".*?"/和/".*"/之間的區別嗎? – Manu

+0

非貪婪vs.貪婪。在「foo」和「bar」「'都嘗試它們。 – Amadan

相關問題