Я пытаюсь сопоставить регулярное выражение в Perl. Мой код выглядит следующим образом:
my $source = "Hello_[version]; Goodbye_[version]";
my $pattern = "Hello_[version]";
if ($source =~ m/$pattern/) {
print "Match found!"
}
Проблема возникает в том, что в скобках указывается класс символов (по крайней мере, я читал), когда Perl пытается сопоставить регулярное выражение, и сопоставление заканчивается неудачей. Я знаю, что могу избежать скобок с помощью \ [
или \]
, но для этого потребуется другой блок кода, чтобы пройти по строке и найти скобки. Есть ли способ автоматически игнорировать скобки, не экранируя их по отдельности?
Краткое примечание: я не могу просто добавить обратную косую черту, так как это всего лишь пример. В моем реальном коде $ source
и $ pattern
оба исходят из-за пределов кода Perl (либо URIEncoded, либо из файла).