Что соответствует этому регулярному выражению в perl: qr! $ Line !; - PullRequest
0 голосов
/ 12 октября 2018

В одном исходном коде я нашел это регулярное выражение:

my $var = qr!$my_string!;

Я просто не могу понять, что это соответствует.Я также искал в Интернете, объяснение qr довольно простое.

Может кто-нибудь объяснить это на человеческом языке, пожалуйста?:)

1 Ответ

0 голосов
/ 12 октября 2018

Большинство операторов, подобных кавычкам может принимать почти все что угодно для разделителей. qr не является исключением, здесь используется ! в качестве разделителя.Он также оценивает ("интерполирует") переменные в кавычках.Таким образом, эта строка кода создает шаблон регулярного выражения, используя переменную $my_string.Этот шаблон предположительно используется позже в коде в выражениях регулярных выражений.Это нормальное использование.

Полный пример:

use warnings;
use strict;
use feature 'say';

my $str = q(hey); 

my $re = qr!$str!; 

my $tgt = q(A_hey_C); 

$tgt =~ s/$re/B/; 

say $tgt;  #-->  A_B_C

Цель qr специально состоит в том, чтобы построить шаблон регулярного выражения, поэтому можно ожидать, что $str выше ($my_string в вопросе), или шаблон в qr, будет содержать специфичные для регулярных выражений шаблоны, возможно, наряду с другими переменными, собранными в программе.Выше $str с простой строкой можно использовать непосредственно в регулярном выражении, так что это нереальный пример.


См. Что такоеюридические разделители для операторов Perl 5 «выбери себе цитаты»?

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