다음은 C/C++ 코드의 멀티 라인 전 처리기 매크로와 일치하도록 작성한 정규 표현식입니다. 나는 결코 정규 표현식 전문가가 아니므로, 내가 이것을 더 잘 만들 수있는 방법에 대한 조언을 환영 할 것입니다.파이썬 정규식 멀티 라인 전 처리기 매크로
\s*#define(.*\\\n)+[\S]+(?!\\)
그것은이 모든 일치해야합니다 : 여기
는 정규식의#define foo(x) if(x) \
doSomething(x)
normalCode();
:
#define foo(x) if(x) \
doSomething(x)
만이 (일부 코드의 다음 줄과 일치하지 말아야
또한 한 줄 전처리 매크로와 일치하지 않아야합니다.
위의 정규 표현식이 효과가 있다는 것을 확신합니다.하지만 말했듯이, 아마도 그것을하는 더 좋은 방법이있을 것입니다. 그리고 그것을 깨뜨리는 방법이 있다고 상상해 봅니다. 누구든지 어떤 제안 할 수 있습니까?