我有这个字符串

a = "IN 744301 Mus Andaman & Nicobar Islands   01  Nicobar 638 Carnicobar 9.2333  92.7833 4"

我想用正则表达式分割这个数字出现的地方,输出将是这样的
['IN' , '744301', 'Mus Andaman & Nicobar Islands', '01' , 'Nicobar', '638', 'Carnicobar', '9.2333','92.7833', '4' ]

最佳答案

您可以使用前瞻和后视:

import re
a = "IN 744301 Mus Andaman & Nicobar Islands   01  Nicobar 638 Carnicobar 9.2333  92.7833 4"
new_a = re.split('(?<=\d)\s+|\s+(?=\d)', a)

输出:
['IN', '744301', 'Mus Andaman & Nicobar Islands', '01', 'Nicobar', '638', 'Carnicobar', '9.2333', '92.7833', '4']

正则表达式解释:
(?<=\d)\s+ :匹配任何以数字 ( \s ) 开头的空格 ( \d )。
\s+(?=\d) :匹配任何后跟数字的空格。
| :应用具有匹配项的连接表达式。

关于python - 用数字所在的位置拆分字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56285914/

10-11 07:43