【发布时间】:2016-06-28 17:48:00
【问题描述】:
我想匹配 curl 命令的标题模式,例如:
-H '键:值'
或
-H“键:值”
这个开关可以出现在中间某处或字符串的末尾。
我的模式:
>>> 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' "]
【问题讨论】:
-
是的,因为您的模式匹配末尾和开头的空格。将
(?:\s+|$)更改为(?!\S)(后面不跟不是空格的字符) -
(?:-H|\G)\s([\'"])[^\'"]+\1