python - Python在模式后获取引号中的文本
问题描述
我想在模式“名称”出现后获取引号中的文本。
示例字符串是:
info = "name: joe", "name: jerry", "name: kate"
这是我正在做的事情:
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'\"name: ([^\"]+)"', string))
print(res)
两件重要的事情 - 你只提取一个组,因此方括号,你定义一个名称作为一个或多个字符的集合,不是双引号"
,因为正则表达式是默认贪婪的(即只匹配最长的匹配)。
输出:
['joe', 'jerry', 'kate']
推荐阅读
- javafx - 如何在 Visual Studio Code 中创建类路径?
- python - 带有套接字的 Python JA3 指纹欺骗
- r - 在列标题和成对变量中嵌入数据的数据透视表
- css - 当我用打开的模式刷新 VueJS 页面时,我松散了 CSS 样式
- python - 为 Django Q 设置磁盘节点
- types - Julia 中的类型图是什么样的?
- node.js - 如何使用中止控制器设置超时并在 ES7 异步等待功能中重试
- git - 我如何克隆一个包含已有文件的仓库
- mongodb - mongo-db compass 中的“或”语句
- skaffold - skaffold 在部署中使用了错误的图像