20.表示數值的字符串--

題目描述

請實現一個函數用來判斷字符串是否表示數值(包括整數和小數)。例如,字符串"+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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章