我想拆分一个包含数字和公制单位的字符串。我试过这个:
foo = "10mm"
match = re.match(r"([0-9]+)([a-z]+)", foo, re.I)
num = match.group(1)
unit = match.group(2)
它适用于整数,但如果数字包含逗号则无效。为此我需要改变什么?
我想拆分一个包含数字和公制单位的字符串。我试过这个:
foo = "10mm"
match = re.match(r"([0-9]+)([a-z]+)", foo, re.I)
num = match.group(1)
unit = match.group(2)
它适用于整数,但如果数字包含逗号则无效。为此我需要改变什么?
如果你想允许10or10,0但不允许,,,, ,123or 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)
>>> re.split('[a-z]+', foo, flags=re.IGNORECASE)
['10', '']
>>> re.split('[0-9]+', foo, flags=re.IGNORECASE)
['', 'mm']