Python在模式后获取引号中的文本
我想在模式“name”出现后在引号中获取文本 示例字符串为:Python在模式后获取引号中的文本,python,re,Python,Re,我想在模式“name”出现后在引号中获取文本 示例字符串为: info=“姓名:乔”、“姓名:杰瑞”、“姓名:凯特” 以下是我正在做的: import re string = 'info = "name: joe", "name: jerry", "name: kate"' array = re.findall(r'"(.*?)"', string) for x in array: x = x.replace(" ","") #remove spaces because ther
info=“姓名:乔”、“姓名:杰瑞”、“姓名:凯特”
以下是我正在做的:
import re
string = 'info = "name: joe", "name: jerry", "name: kate"'
array = re.findall(r'"(.*?)"', string)
for x in array:
x = x.replace(" ","") #remove spaces because there might be space before colon occasionally
print(x.split("name:")[1])
输出打印:
joe
jerry
kate
我只是想知道是否有比我做的更简单的方法来实现这一点并返回相同的输出 试试看:
res=list(re.findall(r'\'名称:([^\']+)”,字符串))
打印(res)
2件重要的事情-您只提取一个组,因此是方括号,并且您将名称定义为一个或多个字符集,而不是双引号“
,因为正则表达式是默认贪婪的(即仅匹配最长的匹配)
产出:
['joe'、'jerry'、'kate']
试试:
res=list(re.findall(r'\'名称:([^\']+)”,字符串))
打印(res)
2件重要的事情-您只提取一个组,因此是方括号,并且您将名称定义为一个或多个字符集,而不是双引号“
,因为正则表达式是默认贪婪的(即仅匹配最长的匹配)
产出:
['joe'、'jerry'、'kate']
您可以在正则表达式中嵌入名称:
模式,通过\s*
说明冒号前的临时空格,还可以将冒号后的一个或多个空格与实际名称(从中拆分)匹配:
您可以在正则表达式中嵌入
名称:
模式,通过\s*
说明冒号前的临时空格,还可以将冒号后的一个或多个空格与实际名称(从中拆分)匹配:
p=re.findall(“(?p=re.findall(“(?)?
re.findall(r'"name\s*:\s+(.*?)"', string)
# ['joe', 'jerry', 'kate']