字符串与python中的re匹配

时间:2016-03-30 01:09:06

标签: python regex string-matching

我想使用re模块将数字与python中的字符串分开,但我不能。

我尝试了以下代码:

import re
t='0.555/0.980/2.563'
r=re.search( (".*")+re.escape('/'),t).group()
print "first number " ,r

我明白了:

0.555/0.980/

我怎样才能得到第一个和最后一个数字?

由于

2 个答案:

答案 0 :(得分:0)

你想使用这样的东西:

result = re.match(r'(\d*\.?\d+)/.+/(\d*\.?\d+)', '0.555/0.980/2.563')

然后result.group(1)result.group(2)会为您提供所需内容。查看此内容的方法是()定义您想要的特定组。 ()中的内容告诉你你想要什么样的模式 - 在这种情况下,正则表达式被调整为捕获那里出现的所有十进制数。

但是@zondo是对的:你可以用result = t.split('/')获得更好的行为。然后,result[0]result[-1]会相应地为您提供第一次和最后一次拆分。

答案 1 :(得分:0)

如果字符串格式保持不变,您可以使用re.split分割数字。

import re

dataString = "0.555/0.980/2.563"

numbers = [float(n) for n in  re.split("/", dataString, re.DOTALL)]

print(numbers)

这将提取数组中的数字

[0.555, 0.98, 2.563]

如果您必须单独打印每个号码,只需遍历列表即可。

for n in numbers:
    print(n)

你会得到:

0.555
0.98 
2.563