Windowsのパス(テキスト文字列)を別のパスに置き換えるために、テキストファイルのリストを検索するスクリプトがあります。Perlの正規表現のような文字列をエスケープする方法
問題は、フォルダ名の一部が数字とダッシュで始まることです。 Perlはここで正規表現を呼び出そうとしているようだ。私は、 "正規表現の存在しないグループへの参照"というメッセージを受け取ります。
文字列は次のようになります。私はこのようにそれを引用している
\\\BAGlobal\6-Engineering\3-Tech
:
my $find = "\\\\\\\BAGlobal\\\6-Engineering\\\3-Tech"
にはどうすればいい6-
と3-
をエスケープするのですか?
二重引用符は不要なので、わかりやすくするために一重引用符も使用します。 – choroba
@choroba実際には二重引用符 '' ''は文字列の意味を変更します。バックスラッシュ '' \ ''の数は奇数なので、二重引用符で囲まれた文字列は '\ B'を補間しようとします。試してみてください\\\\\\\ BAGlobal \\\ 6-Engineering \\\ 3-Tech "; '\\\\\\\ BAGlobal \\\ 6-Engineering \\\ 3-Tech'; 'と言ってください。 – simbabque
'\ B'は正規表現では' \ b'の否定として有効です。 – choroba