我想使用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/
我怎样才能得到第一个和最后一个数字?
由于
答案 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