python 表示数值的字符串

剑指offer第20题:表示数值的字符串

实现一个函数用来判断字符串是否表示数值,如:’+100’、’5e2’表示数值,而’12e’、’1.2.3’不是
# _*_ encoding:utf-8 _*_

import re

class Solution:
    def is_num(self, string):
        """
        判断string是否数字的字符串
        """
        if not string:
            return False

        # e2这样为合法输入
        REGEX = r'^[-+]?[\d]+?(.[\d]+?)?([eE][-+]?[\d]+?)?$|^[-+]?[eE][-+]?[\d]+?$'

        match_obj = re.match(REGEX, string)
        if match_obj:
            return True
        return False

# 测试用例
if __name__ == '__main__':
    string_list = ['', '+100', '5e2', '-123', '3.1416', '-1E-16', '0.5e2','-.5','12e', '1a3.14', '1.2.3', '+-5', '12e+5.4', 'e', '-e', '+e-']
    solution = Solution()
    for string in string_list:
        print string,solution.is_num(string)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值