regex - 如何将替换表达式中的正则表达式与 Perl 中的变量进行比较?

标签 regex perl

所以我是 Perl 新手,我正在尝试正则表达式:

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

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

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

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

最佳答案

#!/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 demo

由于您不熟悉 Perl 中的正则表达式,因此应该从 perlrequick 开始.

关于regex - 如何将替换表达式中的正则表达式与 Perl 中的变量进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16889639/

相关文章:

regex - Grep 第一个八位字节中只有 1 位数字的 IP 地址

regex - Bash 匹配字符串与正则表达式

perl - 如何将/doc/添加到 Catalyst 中每个 URL 的末尾?

Perl:将长字符串转换为以逗号分隔的字节列表

perl - 在Perl中,如何将多个软件包放在单个.pm文件中?

perl - 跟踪 Perl 方法调用

regex - Perl 忽略正则表达式替换的替换侧的空格

sql - 如何在 SQLite3 和 Rails 3.1 中打开 REGEXP?

python - beautifulsoup4 python 处理解析数据

java - 正则表达式前瞻和后视 : followed by this or that