首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

问一个简单的正则表达式有关问题

2012-03-24 
问一个简单的正则表达式问题$_ apples pears peaches plums and apind $_~ tr/ap\w+ /*/cprint如果

问一个简单的正则表达式问题
$_= "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";

好像没有相接的方法,用了一下中转,里面的特殊字符可以自己定义,需要是一个不会在字符串中出现的字符
[解决办法]

Perl code
($_="apples pears peaches plums and apind ")=~s/(?!ap)\w(?<!ap)/*/g && print; 

热点排行