Python用Grepはアンチパターンを除いて試しています。

Python用Grepはアンチパターンを除いて試しています。

私はビルドプロセス中にそれをキャプチャできるように、さまざまなPythonコーディング防止パターンを探しています。新しい行を一致させるためにgrepを利用するのに問題があります。

検索するアンチパターン:

except:
  pass

以下のパターンはIntellijではうまく機能しますが、grepを適用すると機能しません。

except:\s+pass

これを達成する方法を提案します。

答え1

pcregrepPerl互換正規表現GREPを表すソリューションです。

pcregrep -M "^except:\n\s+pass$" file

ここでは、-M, --multiline複数行にわたるパターンマッチングを許可します。

正規表現は、行の先頭にあるテキスト:except:、改行文字、ゼロ個以上の空白(最大数の空白と一致)、行末のpassテキストを一致させます。

関連情報