Совпадение точной строки в массиве в Perl - PullRequest
0 голосов
/ 17 мая 2019

Я хочу сопоставить точную строку в Perl, присутствующую между двумя управляющими символами в файле.

Я пробовал приведенные ниже коды, но они не работают, когда имеются escape-символы до и после сопоставляемого шаблона.

ПРИМЕЧАНИЕ: @ary содержит содержимое файла .txt, заданного в качестве аргумента сценария.

if (grep -w (/$str/), @ary) {

   # do something

}

Примечание grep(/^$str/), @ary тоже не работает.

Содержимое, присутствующее внутри @ary, имеет следующий формат:

/abc/pqr/pattern/xyz…

Я хочу проверить, существует ли шаблон в @ary. Шаблон должен быть точным совпадением.

1 Ответ

0 голосов
/ 18 мая 2019

Если по какой-то причине вы не хотите использовать только grep, этот код работает и находит совпадение между escape-символами:

#!/usr/bin/perl
use strict;
use warnings;

my @ary = ("/abc/pqr/pattern/xyz");

if ("@ary" =~ m/(pattern)/) {
print "match is $1";
}
else {
print "no match";
}

exit 0;
...