正則表達式的正則表達式去除之間#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