用于删除#if X
和#endif //#if X
之间所有行的正则表达式
请注意,C样式注释很重要,需要考虑
#if X
....
.....
#endif //#if X
以下是没有给出理想的o / p:那么是对吗?
re.compile("#if.*?#endif //#if X", re.MULTILINE + re.DOTALL)
答案 0 :(得分:2)
到目前为止,你刚刚编译了你的正则表达式,你还没有做任何事情。
你需要这样做:
myregex = re.compile(r"#if.*?#endif //#if X", re.DOTALL)
result = myregex.sub("", subject)
其中subject
是您要处理的字符串(而""
是替换字符串)。
您不需要re.MULTILINE
参数,因为您根本没有使用开始/结束行锚点。
答案 1 :(得分:1)
而不是're.MULTILINE + re.DOTALL'尝试're.MULTILINE | re.DOTALL',这是一个有点领域
答案 2 :(得分:1)
re.compile(r'#if\s+([A-Z]+)$.+?#endif\s+//\s*#if\s+\1', re.M | re.S)