我有一个描述对象的文件,其中对象的某些属性是可选的。例如(颜色是可选的):
type=dog
sex=male
name=wolf
color=brown
type=dog
sex=male
name=bob
type=cat
sex=male
name=tom
color=black
type=dog
sex=female
name=simona
color=white
我正在寻找一个正则表达式,它为我提供了一对狗“名字”-“颜色”的属性。我正在等待这样的事情:
wolf - brown
bob -
simona - white
我从
type=dog[\s\S]*?name=(\w+)[\s\S]*?color=(\w+)
这给出了错误:
wolf - brown
bob - black
simona - white
然后我从颜色组(给出相同的)并添加“?” 量词:
type=dog[\s\S]*?name=(\w+)[\s\S]*?(color=(\w+))?
但是,我在所有比赛中输掉了第二组,而不是预期的结果:
wolf -
bob -
simona -
我的表达有什么问题以及如何实现我的目标。请不要使用 Lookbehind、Lookahead 和 Conditionals。VBScript 没有实现它们。