繁体   English   中英

Python 字符串提取:提取两个预定义字符串之间的部分

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM