我希望能够在Perl中使用正则表达式将字符插入单词。
这样“ TABLE”一词将变成“ T%A%B%L%E%”
我可以要求这种壮举的语法吗?
非常感谢
答案 0 :(得分:3)
将字符串分解为字符,然后将它们与所需的字符连接在一起;还要附上
my $res = ( join '%', split //, $string ) . '%';
使用正则表达式的简单方法
$string =~ s/(.)/$1%/g;
使用/r
修饰符可以保留$string
并返回更改后的字符串
my $res = $string =~ s/(.)/$1%/gr;
答案 1 :(得分:0)
您可以使用此命令
echo TABLE|perl -pe 's/\w/$&%/g'
这将输出T%A%B%L%E%
或(如果您的数据包含在文件中)
perl -pe 's/\w/$&%/g' test.pl
如果您只想用字母替换,则可以用\w
替换[a-zA-Z]
,因为\w
匹配字母数字和下划线。
答案 2 :(得分:0)
您也可以使用后向搜索
my $s = "table";
$s=~s/(?<=.)/%/g;
print $s;
如果您的版本> 5.14,则可以使用\ K
$s=~s/.\K/%/g;