题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
示例
输入 "123.45e+6"
返回值 true
输入 "1.2.3"
返回值 false
代码
方法一:正则表达式
(+或-最多出现一次)(数字出现任意次)(小数点以及小数部分--整体最多出现一次){(eE二选一)(+或-最多出现一次)(数字出现至少一次)--整体最多出现一次}
# -*- coding:utf-8 -*- import re class Solution: # s字符串 def isNumeric(self, s): # write code here return re.match(r"^[+-]?[0-9]*(.[0-9]+)?([eE][+-]?[0-9]+)?$", s)
方法二:投机取巧
# -*- coding:utf-8 -*- class Solution: # s字符串 def isNumeric(self, s): # write code here try: p=float(s) return True except: return False