gpt4 book ai didi

python - 正则表达式匹配大括号内的字符串

转载 作者:行者123 更新时间:2023-12-01 03:05:17 28 4
gpt4 key购买 nike

我正在尝试将正则表达式写入具有以下格式的字符串

12740(34,12) [abc (a1b2c3) (a2b3c4)......] myId123

目前,我有这样的东西

\((?P<expression>\S+)\)

但是这样,我只能捕获方括号内的字符串。

我是否可以捕获方括号之前的整数以及末尾的 id 以及方括号内的字符串。

小括号内的字符串数量不会相同。我也可以有一个看起来像这样的字符串

10(3,2) [abc (a1b2c3)] myId1

我知道我可以使用强力为上述表达式编写一个简单的正则表达式。但是当方括号内的字符串数量不断变化时,有人可以帮我写一个吗?

提前致谢

最佳答案

您可以使用^$来捕获信息,分别表示开始和结束:

((?P<front>^\d+)|\((?P<expression>\S+)\)|(?P<id>[a-zA-Z0-9]+)$)

正则表达式101:

https://regex101.com/r/PoA5k4/1

为了使结果更有用,我将其转换为字典:

import re

myStr = "12740(34,12) [abc (a1b2c3) (a2b3c4)......] myId123"
di = {}
for find in re.findall("((?P<front>^\d+)|\((?P<expression>\S+)\)|(?P<id>[a-zA-Z0-9]+)$)",myStr):
if find[1] != "":
di["starter"] = find[1]
elif find[3] != "":
di["id"] = find[3]
else:
di.setdefault("expression",[]).append(find[2])
print(di)

关于python - 正则表达式匹配大括号内的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43495783/

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