python - 将字符串拆分为字母和数字

标签 python python-2.7

我有一个由字母和(负)数字组成的字符串,想用 python 将它们分成一个数组。

pathD = "M30,50.1c0,0,25,100,42,75s10.3-63.2,36.1-44.5s33.5,48.9,33.5,48.9l24.5-26.3"

splitS = re.split('(\d+)',pathD)

这不起作用,因为它将点和破折号分割成一排乱七八糟的:

['M', '30', ',', '50', '.', '1', 'c', '0', ',', '0', ',', '25', ',', '100', ',', '42', ',', '75', 's', '10', '.', '3', '-', '63', '.', '2', ',', '36', '.', '1', '-', '44', '.', '5', 's', '33', '.', '5', ',', '48', '.', '9', ',', '33', '.', '5', ',', '48', '.', '9', 'l', '24', '.', '5', '-', '26', '.', '3', '']

我希望看到这样的东西:

 [M, 30, 50.1, c, 0, 0, 25, 100, 42, 75, s, 10.3, -63.2, 36.1, -44.5, s, 33.5, 48.9, 33.5, 48.9, l, 24.5, -26.3]

我不确定我是否走在正确的道路上,或者应该以不同的方式处理它。

最佳答案

import re

pathD = "M30,50.1c0,0,25,100,42,75s10.3-63.2,36.1-44.5s33.5,48.9,33.5,48.9l24.5-26.3"

print(re.findall(r'[A-Za-z]|-?\d+\.\d+|\d+',pathD))

['M', '30', '50.1', 'c', '0', '0', '25', '100', '42', '75', 's', '10.3', '-63.2', '36.1', '-44.5', 's', '33.5', '48.9', '33.5', '48.9', 'l', '24.5', '-26.3']

关于python - 将字符串拆分为字母和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33533393/

相关文章:

python - scrapy中在哪里定义项目自定义项目加载器?

python - 如何使用 python 更新 Elastic Search ( Kibana ) 中可用的大量 Json 数据

python - 当一列与其他列分开时如何选择 DataFrame 列?

python - 类型错误 : <lambda>() takes at least 2 arguments (1 given)

python-2.7 - 在 tensorflow 中保存检查点并恢复训练

Python - 复制和移动文件的进度条

python - 如何在另一个变量中包含/扩展 Jinja2 模板字符串变量

python - 在多级继承中未调用父初始值设定项?

python - 在 Apache 上使用 WSGI 为目录设置 Python

python - 使用 Apache 和 Mod_wsgi (windows) 部署现有的 Django 项目