我想使用正则表达式在正则表达式中插入特定字符吗?

时间:2018-11-26 05:51:12

标签: regex perl

我希望能够在Perl中使用正则表达式将字符插入单词。

这样“ TABLE”一词将变成“ T%A%B%L%E%”

我可以要求这种壮举的语法吗?

非常感谢

3 个答案:

答案 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;