我經常在Python中編寫相當複雜的正則表達式。例如:將正則表達式語法從Python轉換爲POSIX
content = ...
regex = '(.*%.*)([^A-Za-z_])(PAGES)([^A-Za-z_])(.*%.*)'
repl = '\g<1>\g<2>pages\g<4>\g<5>'
re.sub(regex, repl, content)
如果我可以使用標準GNU sed
而不是每次我想遞歸地批量更改文件時都寫一個特殊的腳本,那將會非常有幫助。問題是Python uses an entirely different regex syntax than sed (POSIX),爲reasons well-known to any seasoned engineer。
有沒有標準的方法來將正則表達式從一種語法轉換爲另一種語法?
我知道轉換可能並不總是有效(一些功能比如lookahead是非標準的),但80-20的解決方案會非常好。
你問如何將Python're'模式轉換爲POSIX?即便如此,這個問題聽起來太寬泛了。 –
@WiktorStribiżew,希望反之亦然 –
相關:[Regex Rosetta Stone](https://docs.google.com/spreadsheets/d/174ZtgXlzb-XvEVotDWLTuC4kcvwJj6lyrQw5JqZKfis/edit#gid=0) – Udi