2011-03-28 133 views
1

正則表達式的正則表達式去除之間#if X#endif //#if X 注意所有行的C風格的註釋是非常重要的,需要考慮如何在Python中創建

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

不給所需○以下/ p:那麼是對的?

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

什麼問題? – unholysampler 2011-03-28 11:04:49

+0

什麼問題(「不是所需的o/p」比較模糊)? – 2011-03-28 13:40:44

回答

1

而不是're.MULTILINE + re.DOTALL'試試're.MULTILINE | re.DOTALL',這是一個位字段

+0

雖然這不應該在這裏,因爲所有的標誌都是2的冪,所以添加和「控制」它們將產生相同的結果。不過你還是對的。 – 2011-03-28 11:34:11

+0

哦。對。 /捂臉 – reflog 2011-03-28 14:31:47

2

到目前爲止,你剛剛編譯你的正則表達式,你還沒有做過任何事情。

你需要這樣做:

myregex = re.compile(r"#if.*?#endif //#if X", re.DOTALL) 
result = myregex.sub("", subject) 

其中subject是你想工作的字符串(和""是替換字符串)。

因爲您根本沒有使用開始/結束行錨點,所以不需要參數re.MULTILINE

1
re.compile(r'#if\s+([A-Z]+)$.+?#endif\s+//\s*#if\s+\1', re.M | re.S)