如果它在某个标识符之前,我正在寻找一种从字符串中提取子字符串的方法。
string = [food(type, description), newCar(make, year), fruit(shape, colour), usedCar(make, year), ..., identifier(str1, str2)]
identifier = car (newCar and/or usedCar) - extract if both appear or either one appear
Desired outcome
identifier: newCar
first attribute = make
second attribue = year
identifier: usedCar
first attribute = make
second attribue = year
这是我尝试过的,但我似乎只得到了 (..) 的第一次出现。有什么想法可以解决这个问题,如果我也可以将各个字符串放在括号内会更好吗?
sent = '[food(type, description, newCar(make, year), fruit(shape, colour), usedCar(make, year), ..., identifier(str1, str2)]'
id1 = 'newCar'
id2 = 'usedCar'
if id1 in sent:
carDesc1= sent.split("(")[1].split(")")[0]
print carDesc1
if id2 in sent:
carDesc2= sent.split("(")[1].split(")")[0]
print carDesc2
Print results:
type, description
type, description
编辑:感谢您的回复。我不考虑 Dict 的原因之一是因为键必须是唯一的,并且我有一个多行的文本,并且同一行中可能有重复的 newCar 条目。括号内的文字只是通用术语,因为它可能表示制造 = 丰田/福特或年份 = 2010/2013。