1

有没有办法使用正则表达式来匹配和替换“变量字符串”,比如......

foo_1_a => bar_1_b
foo_2_a => bar_2_b
foo_3_a => bar_3_b

...

例如,使用带有变量“var”的表达式

“替换foo_var => [0-9]_abar_var_b

具体来说,我正在尝试使用 Ruby 从命令行获取一个正则表达式/替换并执行所有这些替换。谢谢。

4

2 回答 2

1

如果我理解正确,您正在寻找反向引用替换字符串。这通常由\1或完成$1。该数字1是先前匹配的组的顺序。

所以匹配foo_2_a. foo_(\d+)_a这里括号创建了一个组。并且是第一组。所以将其替换为bar_\1_b. \1将包含2

更多关于回溯参考

于 2013-10-25T19:03:16.083 回答
0

开始了。

result = "foo_1_a".match(/_([0..1])_/){ "bar_#{$1}_b" }
puts result # "bar_1_b" 
于 2013-10-25T19:05:55.457 回答