$string='dns\.support.dnsbed.com'; print "$string\n"; if ($string =~ /^(.*?)\\\.(.*?)(?<!\\)\.(.*)$/) { print $1.".".$2."@".$3; }
Output: dns\.support.dnsbed.com dns.supp...@dnsbed.com 我猜你遇到的是转义的问题。。。 -----Original Message----- From: Feng He [mailto:fen...@nsbeta.info] Sent: Friday, December 21, 2012 3:39 PM To: beginners@perl.org Subject: Help with a regex Hello, I have a string like: dns\.support.dnsbed.com I want to translate it to a regular email address: dns.supp...@dnsbed.com if ($string =~ /^(.*?)(?<!\\)\.(.*)$/) { my $user = $1; my $tld = $2; return $user . '@'. $tld; } But this won't work correctly. I got: d...@support.dnsbed.com Where do I get wrong? Thanks. -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/