foo = '1234567890'
foo.sub(/(.{3})(.{3})/, '\1-\2-')
#=> "123-456-7890"
是否可以执行以下操作:
foo.gsub(/(.{3})\2/, '\1-\2-')
请注意,半伪代码\2
表示match (this) pattern twice
此模式为(.{3})
,以便我可以获得#=> "123-456-7890"
的相同结果。
这可能吗?
答案 0 :(得分:1)
{2}
是“匹配此模式两次”(我想你已经应该知道了,因为你使用了一个非常相似的{3}
“匹配这个模式三次”修饰符)。所以,不是100%肯定你在问什么,真的。 :)
但是,对于相同模式的不同匹配,您不能拥有不同的组;因此,你的替代品将无效。
如果你真的想要重复模式的东西(你在数组中得到它们),你可以使用String#scan
做类似的事情。