Regex 简单perl正则表达式替换

Regex 简单perl正则表达式替换,regex,perl,Regex,Perl,以下是我的perl代码: my $var="[url=/jobs/]click here[/url]"; $var =~ /\[url=(.+?)\](.+?)\[\/url\]/<a href="\1" style="text-decoration:none;color:#336699">\2</a>/g my$var=“[url=/jobs/]单击此处[/url]”; $var=~/\[url=(.+?)\](.+?)\[\/url\]//g 我对perl非常陌生

以下是我的perl代码:

my $var="[url=/jobs/]click here[/url]";
$var =~ /\[url=(.+?)\](.+?)\[\/url\]/<a href="\1" style="text-decoration:none;color:#336699">\2</a>/g
my$var=“[url=/jobs/]单击此处[/url]”;
$var=~/\[url=(.+?)\](.+?)\[\/url\]//g
我对perl非常陌生,所以我知道它是不正确的,但是如何正确地执行这个
regex替换


最终结果是将
$var
转换为

,因此,根据您知道的所有答案,替代形式是
s//

然而,对于这么大的东西,你应该把它分成几个部分
使其更易于维护。也有助于摆脱困境
分隔符地狱的泥潭

它使用一个预编译的正则表达式和一个用s//
e调用的回调函数

use strict;
use warnings;

# Pre-compiled regex
my $rx = qr{\[url=(.+?)\](.+?)\[/url\]};

# Callback
sub MakeAnchor {
   my ($href,$text) = @_;
   return '<a href="' . $href . '" style="text-decoration:none;color:#336699">' . $text . '</a>';
}

my $input = '[url=/jobs/]click here[/url]';
$input =~ s/$rx/MakeAnchor($1,$2)/eg;

print $input;
使用严格;
使用警告;
#预编译正则表达式
我的$rx=qr{\[url=(.+?)\](.+?)\[/url\]};
#回拨
副锚{
我的($href,$text)=@;
返回“”;
}
我的$input='[url=/jobs/]单击此处[/url]';
$input=~s/$rx/MakeAnchor($1,$2)/eg;
打印$input;
出局


我不明白你怎么会错过了替代表格。只有1个,你有%99个,而且似乎知道正则表达式。你从哪里获得现有信息的<代码>使用严格;使用警告
应该告诉你一些事情。提醒,请参阅@zdim谢谢提醒。你的回答很好,但我认为后面的那一个更好。如果你不同意,请告诉我为什么,我会考虑改变给你。我并不是想问我的答案——只是为了给某些东西打上标记!谢谢:)