Как отправить регулярное выражение через другой матч без каких-либо привязок - PullRequest
0 голосов
/ 06 января 2020

Я использую ниже perl код, чтобы разделить данную строку запятой или пробелом в целом. Мне также нужно передать содержимое регулярного выражения, но это регулярное выражение становится неправильным.

sub specificStrChecker
{
    my $input_line = shift;
    my @specificStrs = split(/[,\s]+/, $input_line);
    print "----------------------------\n";
    foreach (@specificStrs) # list of perl regex | normal str
    {
        print "$_\n";
    }
    print "----------------------------\n\n";
}

my $str_1 = "abc,pqr";
my $str_2 = "/ {2,}/, ghi"; # i need to print / {2,}/

specificStrChecker($str_1);
specificStrChecker($str_2); # i need to print / {2,}/

Вывод:


ab c

pqr



/

{2

} /

ghi


В вышеупомянутой второй части мне нужно "/ {2,} / "но здесь это влияет на регулярное выражение split. Как мне этого избежать .?

1 Ответ

2 голосов
/ 06 января 2020

Если ваши регулярные выражения не содержат каких-либо символов /, это просто изменяет ваше разбиение, чтобы вместо этого соответствовать серии / -ограниченных подстрок или строк не запятых, не пробельных символов:

my @specificStrs = $input_line =~ m{(/[^/]*/|[^,\s]+)}g;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...