Python:按特定模式拆分

发布于 2021-01-29 15:02:53

我有以下

str = '[5.955894, 45.817792], [10.49238, 45.817792], [10.49238, 47.808381], [5.955894, 47.808381]'

我想将其拆分,以便我有一个字符串数组,例如

['[5.955894, 45.817792]', '[10.49238, 45.817792]', ...]

以便对象是数组的元素。重要的是包含封闭的[和]。我到目前为止:

re.split('\D,\s\D', str)

但这给了我:

['[5.955894, 45.817792', '10.49238, 45.817792', '10.49238, 47.808381', '5.955894, 47.808381]']

并不是我真正想要的。

关注者
0
被浏览
56
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我更喜欢使用re.findall并指定我 想要的内容, 而不是尝试描述以下内容的分隔符re.split

    >>> s = '[5.955894, 45.817792], [10.49238, 45.817792], [10.49238, 47.808381], [5.955894, 47.808381]'
    >>> re.findall(r"\[[^\]]*\]",s)
    ['[5.955894, 45.817792]', '[10.49238, 45.817792]', '[10.49238, 47.808381]', '[5.955894, 47.808381]']
    
    1. \[ 火柴 [
    2. [^\]]* 匹配任何东西,但]
    3. \] 火柴 ]


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看