[英]Python string extraction: Extract part between two predefined strings
可以说我有一个这样的字符串:
"ID: 123 Name: Michael , ID: 124 Name: John"
我想提取所有 ID,就像一个列表,它是"ID:"
和"Name:"
之间的单词
我想要的 output:
output = ['123', '124']
我怎样才能最有效地做到这一点? 非常感谢=)
你可以在这里使用re.findall
。 您可以在'ID: number Name:
之间提取Number 。
s=" ID: 123 Name: Michael , ID: 124 Name: John "
re.findall(r'ID: (\d+) Name',s)
# ['123', '124']
Regex pattern explanation r'ID: (\d+) Name'
你可以阅读regex Syntax
\d+
用于捕获数字()
用于捕获它们之间包含的模式。re.findall
返回字符串中所有非重叠匹配项的列表。 如果模式中存在一个或多个捕获组,则返回组列表; 如果模式有多个组,这将是一个元组列表。我建议使用字典而不是将详细信息存储在字符串中。
details={'123':'Micheal','124':'John'}
由于每个ID
都是唯一的,因此您可以将其用作键并将Name
用作与该键对应的值。
试试这个:
[ i for i in " ID: 123 Name: Michael , ID: 124 Name: John ".split() if i.isnumeric()]
给出 output:
['123', '124']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.