python 正则匹配 条件太多怎么办_Python条件正则表达式
我的程序被賦予一個(gè)帶參數(shù)的對(duì)象,我需要獲取參數(shù)的值。
我的程序給出的對(duì)象如下所示:Object = """{{objectName|
parameter1=random text|
parameter2=that may or may not|
parameter3=contain any letter (well, almost)|
parameter4=this is some [[problem|problematic text]], Houston, we have a problem!|
otherParameters=(order of parameters is random, but their name is fixed)}}"""
(所有參數(shù)可能存在也可能不存在)
我想獲取屬性值。
在前3行中,它非常簡單。一個(gè)簡單的正則表達(dá)式會(huì)找到它:if "parameter1" in Object:
parameter1 = re.split(r"parameter1=(.*?)[\|\}]", Object)[1]
if "parameter2" in Object:
parameter2 = re.split(r"parameter2=(.*?)[\|\}]", Object)[1]
等等。
問題在于參數(shù)4,上面的regex(property4=(.*?)[\|\}])只會(huì)返回this is some [[problem,因?yàn)檎齽t表達(dá)式在垂直條上停止。
現(xiàn)在就是這樣:垂直條只會(huì)出現(xiàn)在“[[]]”中的文本的一部分。
例如,parameter1=a[[b|c]]d可能會(huì)出現(xiàn),但parameter1=a|bc|永遠(yuǎn)不會(huì)出現(xiàn)。
我需要一個(gè)在垂直條上停止的正則表達(dá)式,除非它在雙方括號(hào)內(nèi)。例如,對(duì)于parameter4,我會(huì)得到this is some [[problem|problematic text]], Houston, we have a problem!
總結(jié)
以上是生活随笔為你收集整理的python 正则匹配 条件太多怎么办_Python条件正则表达式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 组建小型家庭局域网详解
- 下一篇: 关于电脑病毒电脑病毒如何