gpt4 book ai didi

python - 正则表达式并将两个列表作为元组返回

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:09 27 4
gpt4 key购买 nike

我有这个函数,我想看看是否可以做得更多Pythonic。该函数会自行解释它想要实现的目标。

我担心的是,我对 contentexpected 使用了两个正则表达式,这为错误蔓延提供了空间,最好是这两个变量可以使用相同的正则表达式。

输入示例:

test_names = "tests[\"Status code: \" +responseCode.code] = responseCode.code === 200;\ntests[\"Schema validator GetChecksumReleaseEventForAll\"] = tv4.validate(data, schema);"

def custom_steps(self, test_names):
""" Extracts unique tests from postman collection """
content = re.findall(r'(?<=tests\[")(.*)(?::|"\])', test_names)
expected = re.findall(r'(?<=\] = )(.*)(?::|;)', test_names)
for i, er in enumerate(expected):
if "===" in er:
expected[i] = er[er.find('===')+4:]
else:
expected[i] = "true"

return content, expected

最佳答案

您可以同时匹配两个组:

def custom_steps(self, test_names):
regex = 'tests\["(.*)(?::|"\]).* = (.+)(?::|;)'
for match in re.finditer(regex, test_names):
content, expected = match.groups()
if '===' in expected:
expected = expected[expected.index('===') + 4:]
else:
expected = 'true'
yield content, expected

这为您提供了一个基于内容对的生成器,预期:

for c, e in custom_steps(None, test_names):
print c, e

输出:

Status code 200
Schema validator GetChecksumReleaseEventForAll true

关于python - 正则表达式并将两个列表作为元组返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39917965/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com