我想拆分包含数字和公制单位的字符串。我试过这个:
foo = "10mm"
match = re.match(r"([0-9]+)([a-z]+)", foo, re.I)
num = match.group(1)
unit = match.group(2)
哪个适用于整数,但如果数字包含逗号则不适用。我有什么需要改变的?
答案 0 :(得分:2)
如果您想允许10
或10,0
但不允许,,,
,,123
或123,
,则可以使用
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']