在我的应用程序中,我需要能够查找所有数字子字符串,然后扫描每个子字符串,找到与给定范围匹配的第一个子字符串(例如介于5和15之间),并将该实例替换为另一个字符串“X”。
我的测试字符串为
例如,如果我想要替换第三个匹配项“10”(matches[2]),我不能只说
期望结果为:
我的测试字符串为
s = "1 foo 100 bar 10 gee 1"
我的初始模式是任何一个或多个数字的字符串,例如,re = Regexp.new(/\d+/)
matches = s.scan(re)
返回 ["1", "100", "10", "1"]
如果我想要替换第N个匹配项,并且仅替换第N个匹配项,如何操作?例如,如果我想要替换第三个匹配项“10”(matches[2]),我不能只说
s[matches[2]] = "X"
,因为那样会进行两个替换。期望结果为:
"1 foo 100 bar X gee 1"
谢谢!
next
而不是返回原始值。 - bwest