有没有办法使用正则表达式来匹配和替换“变量字符串”,比如......
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 从命令行获取一个正则表达式/替换并执行所有这些替换。谢谢。
如果我理解正确,您正在寻找反向引用替换字符串。这通常由\1
或完成$1
。该数字1
是先前匹配的组的顺序。
所以匹配foo_2_a
. foo_(\d+)_a
这里括号创建了一个组。并且是第一组。所以将其替换为bar_\1_b
. \1
将包含2
更多关于回溯参考。
开始了。
result = "foo_1_a".match(/_([0..1])_/){ "bar_#{$1}_b" }
puts result # "bar_1_b"