字典元素的正则表达式匹配

2024-09-30 06:21:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用regex \-\-(.*)\=(.*[\w\s\n\Z\r]*)对以下输入进行regex模式匹配

--key_a=value1
--key_b=value2
--key_c=value3
--key_d=value4
--key_e=-----BEGIN CERTIFICATE-----\nHYxCzAJBgNV--=B+AYT\AlVTM/QswCQYDVQQIDAJDQTE=RMA8GA1UEBwwIU2FuIEpvc2UxFTATBgNVBAoMDE51dGFuaXg\r\n

但是当key的值包含一个或多个=符号时,regex匹配不正确。我希望key_e作为第一个组,第一个=之后和下一个--之前的所有内容都作为第二个组。如何解决这个问题


Tags: key内容符号certificateregexbeginvalue1value2
1条回答
网友
1楼 · 发布于 2024-09-30 06:21:35

你可以用^{}。使用ungreedy匹配查找和第一个=之间的所有内容,然后贪婪地匹配后面的所有内容

x = """
 key_a=value1
 key_b=value2
 key_c=value3
 key_d=value4
 key_e=valuewith======init========
"""
import re
print(re.findall(r' (.*?)=(.*)', x))

输出:

[('key_a', 'value1'), ('key_b', 'value2'), ('key_c', 'value3'), ('key_d', 'value4'), ('key_e', 'valuewith======init========')]

相关问题 更多 >

    热门问题