如何创建一个字符串列表,在ruby中只有一个匹配模式的替换。
例如:
给定的字符串是“aaaazzzazazaaaazzzazaaaazz”。我需要用“A”代替“aaaa”。 所以我会得到一个这样的清单:
“aaaazzzazazaaaazzzazAzz”
s = gets.strip
stor="aaaa"
sforr="A"
a = s.split(stor)
(a.length-1).times { |x| puts a[0..x].join(stor)+sforr+
a[x+1..a.count-1].join(stor) }
答案 0 :(得分:5)
您可以将String#scan
与块一起使用:
str = "aaaazzzazazaaaazzzazaaaazz"
str.scan(/aaaa/) { |m| puts "#{$`}A#{$'}" }
输出:
Azzzazazaaaazzzazaaaazz
aaaazzzazazAzzzazaaaazz
aaaazzzazazaaaazzzazAzz
$`
和$'
为global variables,引用最后一场比赛左侧和右侧的字符串。