2017-04-02 14 views
2

私は正規表現の専門家ではなく、私がここで変更するはずのものを理解することはできません。私は正規表現でこれらの2つのエラー左括弧正規表現エラー

エスケープさ左ブレースは廃止され得る

は、正規表現で通過しました。正規表現でエスケープさ左のブレースが廃止されました

、正規表現で通過72 /usr/share/perl5/Debconf/Question.pmラインでm/^(.*?)(\\)?\${ <-- HERE ([^{}]+)}(.*)$/<-- HEREでマーク。私はライン72にジャンプすると/usr/share/perl5/Debconf/Config.pmライン30

m/\${ <-- HERE ([^}]+)}/<-- HEREでマークこれは、私はそれは非推奨警告

while ($rest =~ m/^(.*?)(\\)?\${([^{}]+)}(.*)$/sg) { 
+3

便利なコンテキストが見つからないので、私は推測してください。あなたのシステムに新しいPerlバージョンを使用していて、システムに付属しているバージョンのPerlを使用しています。今のところ、Perlを理解していないと無視できる警告です。いずれにしても、システムに同梱されている元のPerlを、システムに同梱されているスクリプト用に使用することをお勧めします。もしあなたがPerlを理解していれば、正規表現の内部で '{'をエスケープすることで警告を修正することができます。つまり '\ {'。 –

+0

ありがとう!それはうまくいった。うん、私はsudo apt-get upgradeをやったし、何とか新しいパッケージが私のUbuntu 14.04にインストールされた。ゆっくりと1つずつ修正しようとしています... T_Tこれが私のサンバまたはldapに何らかの影響を与えますか? – TheCabDriverCheatedMeToday

+0

正確に何が変更されたのかは不明なので、どのような影響があるかは不明です。 –

答えて

5

見たものですコードが動作を停止することを示す将来、

{と文字通り一致させたい場合は、それをエスケープする必要があります。

つまり、最初の{\{に置き換えて、問題を修正できます(警告を停止する)。

+0

'{'をエスケープしても必ずしも最良の解決策ではありません。 '{0、n} 'の代わりに' {、n} 'が使われ、0..nの繰り返しを示すことがあります。これは動作するために使用されましたが、0はオプションではなくなりました。 – cas

+0

@cas、修正済み。 。 。 – ikegami

+0

完璧に動作します! –

関連する問題