我想知道如何将字符串中大写字母(AZ)之后的第一个数字(0-9)更改为星号而不使用sub
. 如果需要,您可以将其放入一个调用的方法中replace_digit
。
问问题
108 次
1 回答
2
a = "not here 0 but here A5 and here B7, okay?"
begin
loop do
a[/(?<=[A-Z])\d/] = "*"
end
rescue IndexError
end
puts a
# not here 0 but here A* and here B*, okay?
没有sub
:)
编辑:我刚刚注意到“第一个数字” - 所以只需删除循环;如果您可以假设总会有匹配项,您也可以删除异常处理。
a = "not here 0 but here A5 and here B7, okay?"
a[/(?<=[A-Z])\d/] = "*"
puts a
# not here 0 but here A* and here B7, okay?
编辑2:
这也有效,无需向后看:a[/[A-Z](\d)/, 1] = "*"
于 2012-12-06T01:43:30.553 回答