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:, 줄 바꿈 문자, 0개 이상의 공백(최대한 많은 공백과 일치) 및 pass줄 끝의 텍스트를 일치시킵니다.

관련 정보