2017-01-05 9 views
0

以下は、Unrarの出力を解析して.rarを抽出する試みです。私はエラーを投げている次の行を持っています:あまりにも短いエスケープシーケンス。これは、変数のextractLocationが、エスケープされていない\文字(例:I:\ Rar \ Backups \)のファイルパスに等しいために発生します。私の正規表現でこの変数のリテラル文字列の解釈を参照する方法はありますか?そうでない場合は、この問題を解決するために他にどのような方法がありますか?エスケープされていない文字を含む正規表現を挿入する変数

stdoutArr = stdout.split("\n") 

stdoutArr.each do |line| 
#line below is throwing the error 
if line.match(/((?<=(Extracting #{extractLocation})).*.bak)/) 
     extractedFile = line[(/((?<=(Extracting #{extractLocation})).*.bak)/)] 
    end 
end 

答えて

3

この作業を行いどのようにこの

regexp = /((?<=(Extracting #{Regexp.escape(extractLocation)})).*.bak)/ 

を試してみてください?

  • Regexp.escape(...)は完璧akuhnを働くすべての特殊文字
+0

をエスケープ!どうもありがとうございます! – PrestonM

関連する問題