Как объединить два шаблона регулярных выражений в Perl? - PullRequest
0 голосов
/ 07 июня 2019

Я хочу объединить два шаблона регулярных выражений, чтобы разделить строку и получить таблицу целых чисел.

это пример:

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

Я хочу получить табуляцию так:

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

1 Ответ

1 голос
/ 07 июня 2019

Используйте | для подключения альтернатив. Кроме того, используйте 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;

Возможно, вам нужно \.\., чтобы сопоставить две точки, поскольку \.. соответствует точке, за которой следует что угодно, кроме новой строки. Кроме того, нет необходимости ставить запятую в обратном слэше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...