3

例でこれに出くわしたとき、私はperldocsを閲覧していました(http://perldoc.perl.org/perlre.html#Regular-Expressions - Capture Groups example を参照)

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

その構文の意味に関するドキュメントは見つかりませんでした。

では、このコンテキストで正規表現 /${a}/ は何を意味するのでしょうか?

4

2 に答える 2

3

$aから明確にするために中括弧が必要です$a0。トークナイザーは貪欲であるため、変数名は可能な限り長いシーケンスであることに注意してください。変数補間で別のアルファベットまたは数字が続く場合は、${name}構文が必要です。

于 2012-05-19T11:26:53.193 に答える
2

ブラケット付きの $ は、変数名のあいまいさを回避します。そのような:

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

また、あなたが提供したリンクには、$a と $b の定義がありますが、ここにコピーするのを忘れています。

于 2012-05-19T10:52:22.837 に答える