我希望将一个字符串分成数字部分和文本/符号部分。我的当前代码不包括负数或小数,并且行为怪异,在输出的结尾添加了一个空列表元素。
import re
mystring = 'AD%5(6ag 0.33--9.5'
newlist = re.split('([0-9]+)', mystring)
print (newlist)
当前输出:
['AD%', '5', '(', '6', 'ag ', '0', '.', '33', '--', '9', '.', '5', '']
期望的输出:
['AD%', '5', '(', '6', 'ag ', '0.33', '-', '-9.5']
'(-?[0-9\.]+)'
可以给你所需的输出,但也会有一些空字符串。 - ryugiere.split(r'(-?\d*\.?\d+)', s)
,并使用filter(None, result)
去除空值。 - Wiktor Stribiżew