正则表达式的正则表达式去除之间#if X
和#endif //#if X
注意所有行的C风格的注释是非常重要的,需要考虑如何在Python中创建
#if X
....
.....
#endif //#if X
不给所需○以下/ p:那么是对的?
re.compile("#if.*?#endif //#if X", re.MULTILINE + re.DOTALL)
正则表达式的正则表达式去除之间#if X
和#endif //#if X
注意所有行的C风格的注释是非常重要的,需要考虑如何在Python中创建
#if X
....
.....
#endif //#if X
不给所需○以下/ p:那么是对的?
re.compile("#if.*?#endif //#if X", re.MULTILINE + re.DOTALL)
而不是're.MULTILINE + re.DOTALL'试试're.MULTILINE | re.DOTALL',这是一个位字段
虽然这不应该在这里,因为所有的标志都是2的幂,所以添加和“控制”它们将产生相同的结果。不过你还是对的。 – 2011-03-28 11:34:11
哦。对。 /捂脸 – reflog 2011-03-28 14:31:47
到目前为止,你刚刚编译你的正则表达式,你还没有做过任何事情。
你需要这样做:
myregex = re.compile(r"#if.*?#endif //#if X", re.DOTALL)
result = myregex.sub("", subject)
其中subject
是你想工作的字符串(和""
是替换字符串)。
因为您根本没有使用开始/结束行锚点,所以不需要参数re.MULTILINE
。
re.compile(r'#if\s+([A-Z]+)$.+?#endif\s+//\s*#if\s+\1', re.M | re.S)
什么问题? – unholysampler 2011-03-28 11:04:49
什么问题(“不是所需的o/p”比较模糊)? – 2011-03-28 13:40:44