1
私はPerlスクリプトで、この正規表現に出くわした:たPerl:異常な正規表現
$parent_file =~ [email protected]^\Q$CurrentWorkDirForFile\E/@@
現在の作業ディレクトリは、CWDが移入されます。
誰でもこのエントリが何であるか説明できますか?
私はPerlスクリプトで、この正規表現に出くわした:たPerl:異常な正規表現
$parent_file =~ [email protected]^\Q$CurrentWorkDirForFile\E/@@
現在の作業ディレクトリは、CWDが移入されます。
誰でもこのエントリが何であるか説明できますか?
perlでは、(ほぼ)任意の文字を使って正規表現を区切ることができます。これはs/^\Q$CurrentWorkDirForFile\E///
に相当します。 \Q
および\E
は、特殊パターンメタキャラクタの解釈を無効/有効にします。たとえば、/\Q+\E/
は、+
がregexpsの特殊文字であっても、リテラルプラスにマッチします。
スラッシュ '... \ E/@@'が表示されませんでした。これは、おそらく変更された区切り文字の理由です。正規表現は 's/^ \ Q $ CurrentWorkDirForFile \ E \ ///'で、やや傾いた爪楊枝症候群です。 – TLP
ちょうど1つの追加点:正規表現が解析される前に補間が行われ、さらに重要なことに、 '\ Q .. \ E'が実行される前に補間が行われます。つまり、 '\ Q .. \ E'は補間を妨げず、補間された文字列に影響します。 – ikegami