"xyy" 变体, 'x"y'.gsub('"', "\'") => "x'y" 工作正常。 这要么是一个错误(不太可能),要-6ren">
gpt4 book ai didi

ruby - Ruby String#gsub 中反向引用的意外行为

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:34 24 4
gpt4 key购买 nike

所以我觉得这很奇怪:

"x'y".gsub("'", "\\'")
=> "xyy"

变体,

'x"y'.gsub('"', "\'")
=> "x'y"

工作正常。

这要么是一个错误(不太可能),要么是 Ruby 如何处理我不理解的反向引用。谁能解释第一种情况下会发生什么?

最佳答案

\' 表示 $' 是匹配后的所有内容。
(或)
\' 在 gsub 替换中表示 “匹配后的字符串的一部分。”

再次转义 \ 就可以了,

"x'y".gsub("'", "\\\\'")

你也可以在这里使用%q分隔符

"x'y".gsub("'", %q(\\\'))  

//(IRB uses \\ to make an escape-\ visible)

引用自 Gsub wierd behaviour

关于ruby - Ruby String#gsub 中反向引用的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38637449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com