Вопрос

Я просто просматривал perldocs, когда я наткнулся на это в примере ( http://perldoc.perl.org/perlre.html#regular-Expressions - см. Пример захвата групп)

"aa" =~ /${a}/; # True
"aa" =~ /${b}/; # True
"aa0" =~ /${a}0/; # False!
"aa0" =~ /${b}0/; # True
"aa\x08" =~ /${a}0/; # True!
"aa\x08" =~ /${b}0/; # False
.

Я не мог найти ни одной документации о том, что означает этот синтаксис.

Так, что делает Regex / $ {a} / значит в этом контексте?

Это было полезно?

Решение

$ С кронштейнами избегают двусмысленности имени переменной.Такое, что:

$foo = 'house';
'housecat' =~ /$foo/;      # matches
'cathouse' =~ /cat$foo/;   # matches
'housecat' =~ /${foo}cat/; # matches
.

Также в ссылке, которую вы предоставили, есть определение для $ A и $ B, но вы забыли скопировать здесь.

Другие советы

Брекеты необходимы для устранения регенеракодицетагкода из $a.Обратите внимание, что токенизатор жадный, так что имена переменной является более длинным последовательностью .Если в переменной интерполяции еще один алфавит или число следует, вам нужен синтаксис $a0.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top