具体的正则表达式没有正确替换反斜杠

时间:2012-07-19 10:36:13

标签: ruby regex

我正在尝试这样做

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

获得此输出

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

但我正在

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

in irb。 我做错了什么(ruby 1.8.7)?

2 个答案:

答案 0 :(得分:1)

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

请参阅http://www.ruby-forum.com/topic/143645,了解为何需要进行所有额外转义。

答案 1 :(得分:1)

尝试阻止表格吗?

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