问一个简单的正则表达式问题
$_= "apples pears peaches plums and apind ";
$_=~ tr/ap\w+ /*/c;
print;
如果我只想成除了ap的其他都用*表示
ap**** ***** ****** ***** *** ap*** 应该怎么改
[解决办法]
$_= "apples pears peaches plums and apind ";
$_ =~ s/ap/\x01/g; # 先把所有的ap转换成一个特殊字符0x01
$_ =~ s/[^\x01\s]/*/g; # 替换掉所有非0x01和空格的字符为*
$_ =~ s/\x01/ap/g; # 把0x01替换回ap
print $_."\n";
好像没有相接的方法,用了一下中转,里面的特殊字符可以自己定义,需要是一个不会在字符串中出现的字符
[解决办法]
($_="apples pears peaches plums and apind ")=~s/(?!ap)\w(?<!ap)/*/g && print;