Python - 使用未知分隔符拆分数值字符串

标签 python regex string split

我需要从格式不正确的字符串中解析数值。示例:

"0    0    .1        .05       .05       0.        0.         .01"

"0,0,.1,.05,.05,0.,0.,.01"

如您所见,分隔符可以从几个空格到没有空格的逗号。此外,数字可以是整数或 float 。我想拆分任意数量的连续空格、制表符和逗号。我以为我可以用 str.split() 函数来做到这一点,但我发现它只适用于一个分隔符参数,默认情况下不会使用逗号。

有谁知道一个聪明的方法来做到这一点?可能使用正则表达式?

提前致谢。

最佳答案

I would like to split on any number of consecutive spaces, tabs, and commas.

你可以使用 re.split() 用正则表达式分割。

>>> import re
>>> s = '0    0    .1        .05       .05       0.        0.         .01'
>>> re.split(r'[\s,]+', s)

['0', '0', '.1', '.05', '.05', '0.', '0.', '.01']

注意:以上内容将根据空格和逗号进行相应拆分。如果你想在 <space> 上严格拆分, 制表符和逗号,您可以将正则表达式更改为 [ \t,]+ ...

关于Python - 使用未知分隔符拆分数值字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30448750/

相关文章:

python - 检查字符串在 Python 中以什么数字结尾

python - 使用 Python 在不同实例中分割 verilog 路径的正则表达式模式

Python,打印字典中每种可能组合的元素和的键

python - 英特尔与 AMD 对运行 python 有影响吗?

python - Flask 中的静态文件 - robots.txt、sitemap.xml (mod_wsgi)

Java正则表达式替换除少数字符组合之外的所有字符

Javascript Replace() 和正则表达式

python - 如何从正则表达式结果中删除不必要的字符?

python - 动态从列表-字典混合列表中获取值

python - 如何将数组中的字符串拆分为两个新数组