Ruby 使用`string#[]`和正则表达式对字符串进行全局替换
我有以下资料:Ruby 使用`string#[]`和正则表达式对字符串进行全局替换,ruby,regex,replace,Ruby,Regex,Replace,我有以下资料: test = "abcd abed abef" test[/ab.d/] = 'Toast' # => "Toast abed abef" 是否有一个修饰符或其他东西可以用于此语法以使替换全局化,从而使结果为: "Toast Toast abef" 更新: 为了澄清,这仅仅是为了学习而进行的智力练习。我认识到还有其他(更有效的)做事方式。我主要是好奇。:) 您可以尝试以下方法: test.gsub(/ab.d/, 'Toast') 这将对与正则表达式匹配的单词执行g(
test = "abcd abed abef"
test[/ab.d/] = 'Toast'
# => "Toast abed abef"
是否有一个修饰符或其他东西可以用于此语法以使替换全局化,从而使结果为:
"Toast Toast abef"
更新:
为了澄清,这仅仅是为了学习而进行的智力练习。我认识到还有其他(更有效的)做事方式。我主要是好奇。:) 您可以尝试以下方法:
test.gsub(/ab.d/, 'Toast')
这将对与正则表达式匹配的单词执行g(全局)
sub(替换)
,您可以尝试以下操作:
test.gsub(/ab.d/, 'Toast')
这将对匹配正则表达式的单词进行
g(全局)
sub(替换)
,我认为使用String#[]
没有任何意义;我只能想出一种比使用String#gsub
效率更低的方法。但考虑到替换不会产生新的比赛位置,以下是一种方法:
test = "abcd abed abef"
test[/ab.d/] = 'Toast' while test[/ab.d/]
test # => "Toast Toast abef"
我认为使用
String#[]
来实现这一目的没有任何意义;我只能想出一种比使用String#gsub
效率更低的方法。但考虑到替换不会产生新的比赛位置,以下是一种方法:
test = "abcd abed abef"
test[/ab.d/] = 'Toast' while test[/ab.d/]
test # => "Toast Toast abef"
我不知道你在那里写了什么,你能从你的irb控制台粘贴代码吗,那是什么?我不知道你在那里写了什么,你能从你的irb控制台粘贴代码吗,那是什么?是的,我知道那一个。。。我最好奇的是,是否有一个修饰符或其他可以与其他语法一起使用的东西。类似于/pattern/gYeah的东西,我知道那个。。。我最好奇的是,是否有一个修饰符或其他可以与其他语法一起使用的东西。类似于/pattern/g的东西