python 正则匹配 条件太多怎么办_Python条件正则表达式
我的程序被賦予一個帶參數的對象,我需要獲取參數的值。
我的程序給出的對象如下所示: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)}}"""
(所有參數可能存在也可能不存在)
我想獲取屬性值。
在前3行中,它非常簡單。一個簡單的正則表達式會找到它:if "parameter1" in Object:
parameter1 = re.split(r"parameter1=(.*?)[\|\}]", Object)[1]
if "parameter2" in Object:
parameter2 = re.split(r"parameter2=(.*?)[\|\}]", Object)[1]
等等。
問題在于參數4,上面的regex(property4=(.*?)[\|\}])只會返回this is some [[problem,因為正則表達式在垂直條上停止。
現在就是這樣:垂直條只會出現在“[[]]”中的文本的一部分。
例如,parameter1=a[[b|c]]d可能會出現,但parameter1=a|bc|永遠不會出現。
我需要一個在垂直條上停止的正則表達式,除非它在雙方括號內。例如,對于parameter4,我會得到this is some [[problem|problematic text]], Houston, we have a problem!
總結
以上是生活随笔為你收集整理的python 正则匹配 条件太多怎么办_Python条件正则表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 组建小型家庭局域网详解
- 下一篇: 树莓派安装python3.5_梦见树_周