題目描述
請實現一個函數用來判斷字符串是否表示數值(包括整數和小數)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。:
分析:可以表示爲A[.[B]][e|EC]或者.B[e|EC]。其中A爲數值的整數部分,B緊跟着小數點爲數值的小數部分,C緊跟着'e'或者'E'爲數值的指數部分。在小數裏可能沒有數值的整數部分。A和C可以有正負號也可以沒有,而B是一個無符號整數。
思路1:python正則表達式
?是非貪婪匹配0個或者1個前面的表達式。
*是貪婪匹配0個或多個表達式,儘可能多的匹配。 https://blog.csdn.net/AshleyXM/article/details/104166998
# -*- coding:utf-8 -*-
import re
class Solution:
# s字符串
def isNumeric(self, s):
# write code here
return re.match('^[\+\-]?[0-9]*(\.[0-9]*)?([eE][\+\-]?[0-9]+)?$',s)