2013-05-31 234 views
0

我想将字母和数字分开。我尝试过这种方式,但它不适用于负数。我必须改变什么?将数字与字母分开; python

match = re.match(r"([0-9]+(?:.[0-9]+)?)([a-z]+)", "-0.5m", re.I) 
number = match.group(1) 
letter = = match.group(2) 
+1

这里有些正则表达式奇才可能会想出解决办法,但是,什么是你的字符串语法是怎样的?你能给一个例子字符串来匹配吗? – Torxed

+0

你能提供一套预期的输入/输出对吗? – Don

+0

在我的问题中有一个例子,字符串是“-0.5m”,我想-0.5作为数字和米作为字母,但正数也应该起作用。 – Yui

回答

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

-?添加任选允许在数的开始的减号。

+0

谢谢,完美的作品 – Yui

+0

请注意。在正则表达式中应该是\。作为。可以是任何角色。 –