使用正则表达式判断字符串是否表示数值

剑指offer中的一题,请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

import re
s = '12e'
pattern = "[\+-]?[0-9](\.[0-9])?(eE?[0-9]+)?"
if re.match(pattern,s)!=None:
print(‘合法’)

想到用正则来写,不过不熟悉正则,参考的是网上的一个例子,不过没有全部通过测试例。
另,(eE?[0-9]+)?这个表达式的意思是eE?[0-9]+存在有一次或者没有,假设存在,e或者E后面必须要有数字才符合表达,表达式看上似乎是正确,不知道哪里有问题,请指点,谢谢。

当年话下
浏览 1208回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python