我发现这个相关问题:在 perl 中,替换文本中的反向引用后跟数字文字但看起来完全不同。
我有一个像这样的正则表达式
s/([^0-9])([xy])/\1 1\2/g
^
whitespace here
但这个空白出现在替换中。
如何在不让 perl 混淆反向引用的情况下获取替换字符串中的空格\11
?
例如。15+x+y
更改为15+ 1x+ 1y
。
我想要得到15+1x+1y
.
\1
是一个与第一个捕获捕获的内容相匹配的正则表达式原子。在替换表达式中使用它是没有意义的。你要$1
.
$ perl -we'$_="abc"; s/(a)/\1/'
\1 better written as $1 at -e line 1.
在字符串文字(包括替换的替换表达式)中,您可以分隔$var
使用卷发:${var}
。这意味着您需要以下内容:
s/([^0-9])([xy])/${1}1$2/g
以下是更有效的(尽管给出了不同的答案)xxx
):
s/[^0-9]\K(?=[xy])/1/g
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)