有没有办法使用正则表达式来匹配和替换“变量字符串”,如...
foo_1_a => bar_1_b
foo_2_a => bar_2_b
foo_3_a => bar_3_b
...
使用一些带有变量“var”的表达式,例如
“将foo_var => [0-9]_a
替换为bar_var_b
”
具体来说,我正在尝试使用Ruby从命令行中获取一个正则表达式/替换并执行所有这些替换。谢谢。
答案 0 :(得分:1)
如果我理解正确,您正在寻找后退参考替换字符串。这通常由\1
或$1
完成。数字1
是先前匹配的组的订单。
因此foo_2_a
与foo_(\d+)_a
匹配。这里括号创建一个组。它是第一组。所以用bar_\1_b
替换它。 \1
将包含2
有关Back Reference的更多信息。
答案 1 :(得分:0)
我们走了。
result = "foo_1_a".match(/_([0..1])_/){ "bar_#{$1}_b" }
puts result # "bar_1_b"