如何在Perl中结合两个正则表达式模式?

时间:2019-06-06 22:13:49

标签: perl

我想结合两个正则表达式模式来分割字符串并获得整数表。

这个例子:

$string= "1..1188,1189..14,14..15";
$first_pattern = /\../;
$second_pattern = /\,/;

我想要这样的标签:

[1,1188,1189,14,14,15]

1 个答案:

答案 0 :(得分:1)

使用|连接替代项。另外,使用qr//创建正则表达式对象,对/.../使用普通$_匹配项,并将结果分配给$first_pattern$second_pattern

#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };

my $string = '1..1188,1189..14,14..15';
my $first_pattern = qr/\.\./;
my $second_pattern = qr/,/;

my @integers = split /$first_pattern|$second_pattern/, $string;
say for @integers;

您可能需要\.\.来匹配两个点,因为\..会匹配一个点,后跟除换行符以外的任何内容。另外,也不需要反斜杠。