2012-07-19 60 views
1

我试图做到这一点具体的正则表达式替换不正确的反斜杠

"love{ }&\abbc+".gsub(/([-\|!\(\)\{\}\[\]\^"~\*\?:\\&\+])/, '\\\1') 

得到这个输出

"love\{ \}&\\abbc\+" 

但我在IRB越来越

"love\\1 \\1\\1\abbc\\1" 

。 我做错了什么(红宝石1.8.7)?

+0

你的'\ a'是否应该是反斜杠后跟'a'或'\ a'转义序列? – 2012-07-19 10:50:51

+1

@ muistooshort:张贴你的答案(我可以发誓我试了五个反斜杠,它不起作用):) – 2012-07-19 10:52:40

+1

@SergioTulentsev:我太累了,解释为什么需要这么多诅咒反斜杠,我从来没有满意简单的“做这个”答案没有解释。 – 2012-07-19 10:55:11

回答

1

尝试块形式也许?

"love{ }&\abbc+".gsub(/([-\|!\(\)\{\}\[\]\^"~\*\?:\\&\+])/) { |m| "\\#{m}" } 
相关问题