如何在Python中将多括号值字符串拆分为括号值列表
解决方案
直接用正则表达式匹配提取而非拆分,就能精准拿到每个完整的括号组,具体代码如下:
import re initial_string = '(1.5 0.1 0.3) (1.1 0.3 0.2) (1.9 0.6 0.4) (1.7 0.1 0.2)' target_list = re.findall(r'\([^)]+\)', initial_string) print(target_list)
正则规则说明
\(:转义匹配左括号(避免被正则解析为分组符号)[^)]+:匹配任意非右括号的字符,且至少出现一次(确保覆盖括号内所有内容,不会匹配空括号)\):转义匹配右括号
执行后直接得到你想要的结果:
['(1.5 0.1 0.3)', '(1.1 0.3 0.2)', '(1.9 0.6 0.4)', '(1.7 0.1 0.2)']
如果你的场景中不会出现嵌套括号,这个方案完全够用;如果有嵌套需求,可以调整正则为递归匹配(比如r'\((?:[^()]|(?R))+\)'),但你的示例场景不需要这么复杂。
内容的提问来源于stack exchange,提问作者user3611
相关产品推荐
相关产品推荐

