从文本中拆分数字

时间:2013-04-16 10:20:03

标签: python string split ironpython

我想拆分包含数字和公制单位的字符串。我试过这个:

foo = "10mm"
match = re.match(r"([0-9]+)([a-z]+)", foo, re.I)

num = match.group(1)
unit = match.group(2)

哪个适用于整数,但如果数字包含逗号则不适用。我有什么需要改变的?

2 个答案:

答案 0 :(得分:2)

如果您想允许1010,0但不允许,,,,123123,,则可以使用

match = re.match(r"([0-9]+(?:,[0-9]+)?)([a-z]+)", foo, re.I)

如果你实际上是指一个点/句点(10.0),那么你需要记住逃避它:

match = re.match(r"([0-9]+(?:\.[0-9]+)?)([a-z]+)", foo, re.I)

答案 1 :(得分:1)

>>> re.split('[a-z]+', foo, flags=re.IGNORECASE)
['10', '']

>>> re.split('[0-9]+', foo, flags=re.IGNORECASE)
['', 'mm']