2

所以我是 Perl 的新手,我正在尝试regex

my $address = 'http://mail.google.com/belmark';

s/$address=~(\w+:\/\/)(.*.com)(\/\w+)/$1$2\/dev\/public_html/ if ($address =~ /.*\/belmark/);

该代码在替换部分给了我错误

我想要完成的是在替换表达式中的正则表达式中使用预定义的变量进行比较。我可以使用$_. 那么我该怎么做呢?

4

2 回答 2

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";

Ideone 演示

由于您是 Perl 中正则表达式的新手,您应该从perlrequick开始。

于 2013-06-03T03:38:12.950 回答
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
于 2013-06-03T05:49:27.687 回答