我有这段文字:
rojo
我想做一个替换,把它变成:
rojo77
所以我正在尝试:
perl -pi.bak -e "s/(ojo)/$177/g" oven.txt
如果我想用文本而不是 77 替换,我不会有任何问题,但作为一个数字,我得到的结果是:
r
我的意思是,它匹配 ojo
,但替换不起作用,所以匹配的所有内容都会被删除。如何使用 $1
并在其旁边使用数字?
请帮忙!
最佳答案
作为初学者:因为您事先知道您要匹配的确切字符串部分,所以您实际上不需要替换变量:
s/ojo/ojo77/
但是如果你想使用替换变量,你可以这样做:
s/(ojo)/${1}77/
正如 zdim 评论的那样, 这也可以用 special assertion \K
表示,这基本上意味着保留剩下的东西:
s/ojo\K/77/
关于regex - 尝试使用 perl 进行替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62033808/