如何在python中创建正则表达式

时间:2011-03-28 10:59:23

标签: python regex

用于删除#if X#endif //#if X之间所有行的正则表达式 请注意,C样式注释很重要,需要考虑

#if X
....
.....
#endif //#if X

以下是没有给出理想的o / p:那么是对吗?

re.compile("#if.*?#endif //#if X", re.MULTILINE + re.DOTALL)

3 个答案:

答案 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)