剑指offer中的一题,请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
import res = '12e'pattern = "[\+-]?[0-9](\.[0-9])?(eE?[0-9]+)?"if re.match(pattern,s)!=None: print(‘合法’)
想到用正则来写,不过不熟悉正则,参考的是网上的一个例子,不过没有全部通过测试例。另,(eE?[0-9]+)?这个表达式的意思是eE?[0-9]+存在有一次或者没有,假设存在,e或者E后面必须要有数字才符合表达,表达式看上似乎是正确,不知道哪里有问题,请指点,谢谢。
添加回答
举报
0/150
提交
取消