我试图从这种字符串中提取数字:
"30098.904999 5 ABC Da d 8 06 01 20 00 80 11 C0 04"
首先,我删除所有空白:
test = ' '.join(test.split())
然后我尝试应用以下模式:
pattern = r"(\d+.\d+) (\d+) ABC Da d 8 (\d\d) (\d\d) (\d\d) (\d\d) (\d\d) (\d\d) (\d\d) (\d\d)"
但是,仍然没有得到任何结果:
result = re.search(pattern, s)
print ("result: " + str(result.groups(0)))
print ("result: " + str(result.groups(0)))
AttributeError: 'NoneType' object has no attribute 'groups'
如果我把第一个号码改为50.309951,那么它就行了。 第一个数字是一个时间戳,其中的数字数量可能会有所不同
欢迎任何帮助!:) 线等回答 j
这是因为
C0
与\d\d
不匹配。您可以对该部分使用\d\w
。但作为一种更通用的方法,您可以使用re.findall()
来捕获所有数字:为什么不在删除空格字符后拆分字符串呢
像这样
您将收到一组项目
split
,因为您可以使用\s+
来匹配一个或多个空格您可以使用以下选项:
RegEx Demo
相关问题 更多 >
编程相关推荐