Biểu thức chính quy sau đây tôi đã viết để khớp với các macro xử lý trước nhiều dòng trong mã C/C++. Tôi không có nghĩa là một guru biểu thức thông thường, vì vậy tôi muốn chào đón bất kỳ lời khuyên nào về cách tôi có thể làm điều này tốt hơn.python regex để khớp với macro tiền xử lý đa dòng
Đây là regex:
\s*#define(.*\\\n)+[\S]+(?!\\)
Nó phải phù hợp với tất cả điều này:
#define foo(x) if(x) \
doSomething(x)
Nhưng chỉ có một số này (không phải phù hợp với dòng tiếp theo của mã:
#define foo(x) if(x) \
doSomething(x)
normalCode();
Và cũng không được khớp với các macro tiền xử lý một dòng.
Tôi khá chắc chắn rằng các regex ở trên hoạt động - nhưng như tôi đã nói, có lẽ có một cách tốt hơn để làm điều đó, và tôi tưởng tượng rằng có những cách để phá vỡ nó. Bất cứ ai có thể đề nghị bất kỳ?