【发布时间】:2010-07-27 02:35:16
【问题描述】:
我无法正确使用 gsub:
鉴于此代码:
"replace me".gsub(/replace me/, "this \\0 is a test")
结果是:
"this replace me is a test"
但我期待的是:
"this \0 is a test"
如何使用 gsub 来获得我想要的结果?
【问题讨论】:
-
\0 是一个被整个匹配替换的反向引用,它不是 Ruby 独有的。 (您通常将它们视为 \1、\2 等。\0 更为罕见)
-
当
'\0'出现在单引号中时(就像gsub通常的最后一个参数一样),它等效于双引号中的"\\0",因为你不能有任何其他转义序列比'\\'或'\''用单引号括起来。