Ruby 维持一个「;变量";在正则表达式中?

Ruby 维持一个「;变量";在正则表达式中?,ruby,regex,Ruby,Regex,有没有办法使用正则表达式匹配并替换为“变量字符串”,如 例如,使用带有变量“var”的表达式 “将foo\u var=>[0-9]\u a替换为bar\u var\u b” 具体地说,我试图使用Ruby从命令行接收一个regex/replacement,并执行所有这些替换。谢谢 如果我理解正确,您正在寻找反向引用替换字符串。这通常由\1或$1完成。编号1是先前匹配的组顺序 因此,通过foo\u(\d+)\u a匹配foo\u 2\u a。这里括号创建了一个组。这是第一组。因此,将其替换为bar

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

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

“将
foo\u var=>[0-9]\u a
替换为
bar\u var\u b


具体地说,我试图使用Ruby从命令行接收一个regex/replacement,并执行所有这些替换。谢谢

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

因此,通过
foo\u(\d+)\u a
匹配
foo\u 2\u a
。这里括号创建了一个组。这是第一组。因此,将其替换为
bar\u1\u b
<代码>\1将包含
2


更多信息。

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

因此,通过
foo\u(\d+)\u a
匹配
foo\u 2\u a
。这里括号创建了一个组。这是第一组。因此,将其替换为
bar\u1\u b
<代码>\1将包含
2

更多信息。

我们开始吧

result = "foo_1_a".match(/_([0..1])_/){ "bar_#{$1}_b" }
puts result # "bar_1_b" 
我们开始吧

result = "foo_1_a".match(/_([0..1])_/){ "bar_#{$1}_b" }
puts result # "bar_1_b" 

是否要使用字符串的一部分替换?就像你用
bar\u 1\u b
替换
foo\u 1\u a
1
来自字符串的位置一样?是的,这正是我要找的。你想用字符串的一部分替换吗?就像你用
bar\u 1\u b
替换
foo\u 1\u a
字符串中的
1
一样?是的,这正是我想要的。