【发布时间】:2016-01-18 14:44:39
【问题描述】:
我有奇怪的项目列表和类似这样的列表,| 作为分隔符,[[ ]] 作为括号。它看起来像这样:
| item1 | item2 | item3 | Ulist1[[ | item4 | item5 | Ulist2[[ | item6 | item7 ]] | item8 ]] | item9 | list3[[ | item10 | item11 | item12 ]] | item13 | item14
我想使用 RegEx 匹配名为 Ulist* 的列表中的项目(项目 4-8),并将它们替换为 Uitem*。结果应如下所示:
| item1 | item2 | item3 | Ulist1[[ | Uitem4 | Uitem5 | Ulist2[[ | Uitem6 | Uitem7 ]] | Uitem8 ]] | item9 | list3[[ | item10 | item11 | item12 ]] | item13 | item14
我尝试了我所知道的关于 RegEx 的几乎所有内容,但如果 Ulist 中的每个项目,我还没有找到任何匹配的 RegEx。我目前的正则表达式:
/Ulist(\d+)\[\[(\s*(\|\s*[^\s\|]*)*\s*)*\]\]/i
怎么了?我是 RegEx 的初学者。
它在 Python 2.7 中,具体我的代码是:
def fixDirtyLists(self, text):
text = textlib.replaceExcept(text, r'Ulist(\d+)\[\[(\s*(\|\s*[^\s\|]*)*\s*)*\]\]', r'Ulist\1[[ U\3 ]]', '', site=self.site)
return text
text 得到那个奇怪的列表,textlib 用 RegEx 替换 RegEx。一点都不复杂。
【问题讨论】:
-
你之前已经问过这个问题,它被删除了。怎么又问了?
-
请添加您的代码,在哪里使用此 RE
-
我从来没有在这里问过。添加了一段代码并更新了问题
-
你尝试过 PyPi 正则表达式模块吗?它支持递归。
标签: python regex python-2.7