我的程序被赋予了一个带有参数的对象,我需要获取这些参数的值。
我的程序所提供的对象将如下所示:
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]
诸若此类。
问题出在parameter4,上面的正则表达式(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!
https://stackoverflow.com/questions/56347432
复制相似问题