我有以下内容:
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]']
4条答案
按热度按时间jrcvhitl1#
我更喜欢使用
re.findall
并指定我 * 想要 * 的内容,而不是尝试描述re.split
的分隔符\[
匹配项[[^\]]*
匹配任何内容,但]\]
匹配项]njthzxwz2#
您需要将
re.split
与 look-ahead 一起使用:不要使用
str
作为变量,它会隐藏内置函数。以下模式:
将匹配
comma(,)
和一些空格,后面跟一个[
你甚至可以用
look-behind
来做,所以(?<=\]),[ ]*
也可以。gg58donl3#
这是我写的一个简单的程序,我认为它解决了你的问题,但不是最好的。
liwlm1x94#
以下来自@nhahtdh评论。
这取决于你的信任问题。