主题:文问题,关于正则表达式 -- pastebt
共:💬26 🌺8
$input=<STDIN>;
chomp($input);
if ($input =~ /^(\d*)(a\d*b)(\d*)$/)
{
$a = $1;
$b = $2;
$c = $3;
$b =~ s/3//g;
$output = $a.$b.$c;
print "$output\n";
}
实际就两个正则表达式
第一个/^(\d*)a(\d*)b(\d*)$/运行完了,对你这个输入$1是1234,$2是a5635367312b,$3是563789
然后把$2赋值给$b,用s/3//g把里面的3都替换掉,一定要加g标示符,代表全局替换,否则只替换第一个3。
最后$output就是1234a5656712b563789
- 相关回复 上下关系8
🙂这个大概要用到Back reference 1 潇湘夜雨 字200 2009-05-01 17:02:15
🙂用perl搞这种事超简单
🙂按这个思路 pastebt 字24 2009-05-01 20:26:22
🙂单用正则好像是搞不定这件事 股市就是搏傻游 字109 2009-05-01 21:45:29
🙂先找3,再确定3是不是在ab之间,不知道这样行不? 一无所之 字0 2009-05-01 06:01:35
🙂加标志位 littles 字141 2009-04-30 23:05:04