有没有办法从正则表达式中替换字符?
像这样:find x | xargs perl -pi -e 's/(as dasd asd)/replace(" ","",$1)/'
来自OP的评论
code find x | xargs perl -pi -e 's/work_search=1\/ttype=2\/tag=(.*?)">(.*?)<\/a>/work\/\L$1\E\" rel=\"follow\">$2<\/a>/g'
在这种情况下,我希望将$ 1的空格替换为_
答案 0 :(得分:2)
您可以使用嵌套替换:
$ echo 'foo bar baz' | perl -wpE's/(\w+ \w+ \w+)/ $1 =~ s# ##gr /e'
foobarbaz
请注意,/r
修饰符需要perl v5.14。对于早期版本,请使用:
$ echo 'foo bar baz' | perl -wpE's/(\w+ \w+ \w+)/my $x=$1; $x=~s# ##g; $x/e'
foobarbaz
另请注意,您需要为内部替换使用不同的分隔符。正如您所见,我使用了#
。
答案 1 :(得分:0)
据我了解,您想要删除空格。这是对的吗?
你可以这样做:
s/(as) (dasd) (asd)/$1$2$3/