Perl连接和拆分操作

Vij*_*jay 1 perl split join

我尝试了一个小测试:替换xx|y|z|a,w 所以我试过:

echo "x|y|z|a" | perl -lne '@arr=split /|/;$arr[0]='w';$_=join "|",@arr;print $_;'
Run Code Online (Sandbox Code Playgroud)

它给了我:

> echo "x|y|z|a" | perl -lne '@arr=split /|/;$arr[0]='w';$_=join "|",@arr;print $_;'
w|||y|||z|||a
>
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,它提供了3个字段分隔符而不是1个.任何人都可以告诉我我哪里错了?

Has*_*kun 7

正则表达式是两个空模式之间的交替.您可以使用/\|/匹配文字|.

  • 具体来说,`|`是一个特殊字符,意思是"或",所以`/ | /表示"匹配空字符串或空字符串".每次都会匹配. (5认同)