从请求响应中查找以单词开头的完整字符串



如何从请求对象中获取与单词匹配的完整行

例如,我有response=request.get(url(和print(response.text(,假设输出有以下几行,我试图获取以file_path开头的完整单词,并将预期结果作为";file_path:/opt/temp";

用户:abcd
搜索文件:f-abc-123
文件路径:/opt/temp
分支:开发
电子邮件至:abc@gmail.com
版本:1.10.00

下面是我的代码,它似乎不工作

import re
import requests
response=request.get("https://artifactory.com",header=(..),verify=False)
res=re.search(r'file_pathw+',response.text)
print(res.group(0))

我得到的输出:
file_path

预期输出:
文件路径:/opt/temp

如果你真的想逐行解析,并确保如果它与你的字符串匹配,你会得到整行,那么你可以将你的文本输出分成换行,并像一样检查每行你要查找的文本

r = requests.get("https://artifactory.com",header=(..),verify=False)
lines = r.text.split('n')
for line in lines:
if 'file_path' in line:
print(line)

然而,如果你得到的数据是json格式的,我怀疑它可能来自你上面的描述,那么你绝对应该利用json格式来处理它,而不是逐行解析。您可以在json响应中引用file_path的密钥,如

r = requests.get("https://artifactory.com",header=(..),verify=False)
data = r.json()
print('file_path: ' + data['file_path'])

这些方法不需要正则表达式。如果您知道处理的是json响应,而不仅仅是未知格式的文本响应,那么json方法是最好的。

试试这个,

#until a newline(n) is hit, consider all characters.
res= re.search(r'file_path[^n]+', response.text)
print(res.group(0))

输出:'file_path:/opt/temp'

最新更新