gpt4 book ai didi

ruby - 用 Ruby 正则表达式中的值替换所有匹配项

转载 作者:数据小太阳 更新时间:2023-10-29 06:56:10 27 4
gpt4 key购买 nike

我在进行 Ruby 字符串替换时遇到了问题。我正在为我正在使用的有限语言编写一个预处理器,它本身不支持数组,所以我自己动手。

我有一条线:

x[0] = x[1] & x[1] = x[2]

我想用重新格式化的版本替换每个实例:

x__0 = x__1 & x__1 = x__2

该行可能在别处包含方括号。

我有一个匹配数组用途的正则表达式:

array_usage = /(\w+)\[(\d+)\]/

但我想不出 Ruby 构造来逐个替换每个实例。我不能使用 .gsub() 因为它会匹配行中的每个实例,并将每个数组声明替换为第一个声明。 .scan() 提示说,如果您尝试在 block 内使用带有 .sub()! 的扫描,则字符串正在被修改。

如有任何想法,我们将不胜感激!

最佳答案

实际上你可以使用gsub ,你只需要小心正确地使用它:

s = 'x[0] = x[1] & x[1] = x[2]'
s.gsub!(/(\w+)\[(\d+)\]/, '\1__\2')
puts s

结果:

x__0 = x__1 & x__1 = x__2

关于ruby - 用 Ruby 正则表达式中的值替换所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2531171/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com