/AA[.<]$]ER/
オンラインでいくつかの正規表現パターンを実行しているが、これを打破することはできませんでした。このパール正規表現でドル記号は何を指していますか
私は当初は通常のEOSと思っていましたが、それらの追加文字は意味をなさないものです。 何か助けていただければ幸いです。
/AA[.<]$]ER/
オンラインでいくつかの正規表現パターンを実行しているが、これを打破することはできませんでした。このパール正規表現でドル記号は何を指していますか
私は当初は通常のEOSと思っていましたが、それらの追加文字は意味をなさないものです。 何か助けていただければ幸いです。
これは著者の間違いかもしれませんが、$]
はここでは特別な変数として扱われます。具体的には、これは変数$OLD_PERL_VERSION
のエイリアスであり、数字としてエンコードされたperlのバージョンを含んでいます。私のシステムで5.020002
(バージョン番号5.20.2に対応)。その値は正規表現に挿入され、文字通り一致します。例えば、私のシステムでは、上記の正規表現は、部分文字列AA.5.020002ER
またはAA<5.020002ER
を含む文字列とのみ首尾よく一致します。
' $ OLD_PERL_VERSION'はちょっと混乱しています。私はそれが現れた時は確かではないが、明らかに[文書化されているが5.20まで存在しなかった](http://perldoc.perl.org/5.20.0/perldelta.html)。それは[5.24]で落胆しています(http://perldoc.perl.org/perldelta.html#Documentation)。私はそれが決して存在しないふりをすることをお勧めしたい。 – Schwern
$]は、Perlのバージョン番号を返す特別な変数です。特殊変数は正規表現でも使用できます。
マルチラインフラグは有効でしたか? – dorukayhan
いいえ、有効になっていませんでした。 – phunchik
FWIWのような正規表現は、 '/ x'と中カッコでより読みやすくなります。 'm {AA [。<] $] ER} x' – Schwern