Ruby 多次匹配同一个正则表达式?
是否可以执行以下操作:Ruby 多次匹配同一个正则表达式?,ruby,Ruby,是否可以执行以下操作: foo = '1234567890' foo.sub(/(.{3})(.{3})/, '\1-\2-') #=> "123-456-7890" 注意,半伪代码\2表示两次匹配(这个)模式这个模式是(.{3}),这样我就可以得到与#=>“123-456-7890”相同的结果 这可能吗 {2}是“两次匹配此模式”(我想您应该已经知道了,因为您使用的是非常类似的{3}“三次匹配此模式”修饰符)。所以,不是100%确定你在问什么,真的 但是,对于同一模式的不同匹配,不能
foo = '1234567890'
foo.sub(/(.{3})(.{3})/, '\1-\2-')
#=> "123-456-7890"
注意,半伪代码\2
表示两次匹配(这个)模式
这个模式是(.{3})
,这样我就可以得到与#=>“123-456-7890”
相同的结果
这可能吗 {2}
是“两次匹配此模式”(我想您应该已经知道了,因为您使用的是非常类似的{3}
“三次匹配此模式”修饰符)。所以,不是100%确定你在问什么,真的
但是,对于同一模式的不同匹配,不能有不同的组;因此,你的替代品不起作用
如果你真的想要重复的模式,你可以使用String#scan
做类似的事情(你把它们放在一个数组中)。No String#scan只会增加不必要的复杂性。只是想简化正则表达式。我觉得我在其他语言中也看到过。。
foo.gsub(/(.{3})\2/, '\1-\2-')