Aşağıda, C/C++ kodunda çok satırlı ön işlemci makroları eşleştirmek için yazdığım düzenli bir ifade var. Ben hiçbir şekilde düzenli ifadeler gurusu değilim, bu yüzden bunu nasıl daha iyi yapabileceğime dair herhangi bir tavsiyeyi memnuniyetle karşılarım.python regex
\s*#define(.*\\\n)+[\S]+(?!\\)
Tüm bunların uymalıdır: Burada
regex var#define foo(x) if(x) \
doSomething(x)
normalCode();
:
#define foo(x) if(x) \
doSomething(x)
Ama sadece bu (bazı kod sonraki satırla aynı olmamalıdır
Ayrıca, tek satırlı önişlemci makroları eşleşmemelidir.
Yukarıdaki ifadenin işe yarayacağına eminim - ama dediğim gibi, muhtemelen bunu yapmanın daha iyi bir yolu var ve bunu kırmanın bir yolu olduğunu hayal ediyorum. Herhangi biri önerebilir mi?