我在python2.7中使用正则表达式来匹配字符串中的数字,但我无法匹配表达式中的单个数字,下面是我的代码
import re
import cv2
s = '858 1790 -156.25 2'
re_matchData = re.compile(r'\-?\d{1,10}\.?\d{1,10}')
data = re.findall(re_matchData, s)
print data
然后打印:
^{pr2}$但当我把表情从
re_matchData = re.compile(r'\-?\d{1,10}\.?\d{1,10}')
到
re_matchData = re.compile(r'\-?\d{0,10}\.?\d{1,10}')
然后打印:
['858', '1790', '-156.25', '2']
d{1,10}和d{0,10}之间有什么混淆吗? 如果我做错了,怎么改正? 谢谢你检查我的问题!在
我宁愿这样做:
输出:
^{pr2}$试试这个:
r'\-?\d{1,10}(?:\.\d{1,10})?'
使用
(?:)?
将小数部分设为可选。在对于}。在
r'\-?\d{0,10}\.?\d{1,10}'
,与2
匹配的是{第一个
\d{1,10}
匹配1到10个数字,第二个\d{1,10}
也匹配1到10个数字。为了使两者匹配,您的号码中至少需要2个数字,它们之间有一个可选的.
。在您应该将整个分数设为可选,而不仅仅是
.
。在相关问题 更多 >
编程相关推荐