>> header-6ren">
gpt4 book ai didi

Python 正则表达式不匹配字符串中的所有模式

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:14 24 4
gpt4 key购买 nike

我想匹配 curl 命令的 header 模式,例如:

-H 'key: value'

-H "key: value"

这个开关可以出现在字符串的中间某处或末尾。

我的模式:

>>> header_pattern = re.compile(' \-H (?:\'|\").+?:.+?(?:\'|\")(?:\s+|$)')

我的字符串:

>>> a = " -H 'Authorization: Bearer xxx' -H 'Content-Type: text/plain' "

现在我试图找到这个模式的所有实例,但它只匹配第一个模式。

>>> headers = header_pattern.findall(a)
>>> headers
[" -H 'Authorization: Bearer xxx' "]

最佳答案

为什么不使用 argparse module而不是正则表达式:

import argparse
import shlex


parser = argparse.ArgumentParser()
parser.add_argument('command')
parser.add_argument('url')
parser.add_argument('-d', '--data')
parser.add_argument('-b', '--data-binary', default=None)
parser.add_argument('-H', '--header', action='append', default=[])
parser.add_argument('--compressed', action='store_true')


curl_command = "curl https://google.com -H 'Authorization: Bearer xxx' -H 'Content-Type: text/plain'"

tokens = shlex.split(curl_command)
parsed_args = parser.parse_args(tokens)
print(parsed_args.header)

打印 ['Authorization: Bearer xxx', 'Content-Type: text/plain']

(灵感来自 uncurl package )。

关于Python 正则表达式不匹配字符串中的所有模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38082986/

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