所以我是Perl的新手,我正在尝试正则表达式:
my $address = 'http://mail.google.com/belmark';
s/$address=~(\w+:\/\/)(.*.com)(\/\w+)/$1$2\/dev\/public_html/ if ($address =~ /.*\/belmark/);
该代码在替换部分中给出了错误
我想要完成的是使用预定义变量在regex里面替换表达式进行比较。我可以使用$_
成功比较它。那我该怎么办呢?
答案 0 :(得分:2)
#!/usr/bin/perl
use strict;
use warnings;
my $address = 'http://mail.google.com/belmark';
$address =~ s/(\w+:\/\/)(.*.com)(\/\w+)/$1$2\/dev\/public_html/ if ($address =~ /.*\/belmark/);
print "Address is: $address";
由于您不熟悉Perl中的正则表达式,因此您应该从perlrequick开始。
答案 1 :(得分:1)
如果您需要此功能适用于.net
,.org
或其他内容......
另一种可能的选择。
my $address = 'http://mail.google.com/belmark';
$address =~ s/(\.(?:net|org|com)).*/$1\/dev\/public_html/ if $address =~ /belmark$/;
print "$address\n";
__OUTPUT__
http://mail.google.com/dev/public_html