Ruby 维持一个「;变量";在正则表达式中?
有没有办法使用正则表达式匹配并替换为“变量字符串”,如 例如,使用带有变量“var”的表达式 “将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
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
一样?是的,这正是我想要的。