Python正则表达式:只要整数和小数

def isNumReg(str):
    regInt='\d+'#能匹配123、123.63、123eabd、abc236等所有包含了数字的字符串
    regInt2='\d+$'#能匹配123、123.63、abc236等所有以数字结尾的字符串
    regInt2='^\d+$'#只能匹配1、12、123等只包含数字的字符串
    regFloat='\d+\.\d+'#能12.36、efa56.63、wwe56.56abc等字符串
    regFloat2='^\d+\.\d+$'#能匹配2.36、0.36、00069.63、0.0、263.25等
  
    #以下是整数和小数正确的正则表达式
    regInt='^0$|^[1-9]\d*$'#不接受09这样的为整数
    regFloat='^0\.\d+$|^[1-9]\d*\.\d+$'
    #接受0.00、0.360这样的为小数,不接受00.36,思路:若整数位为零,小数位可为任意整数,但小数位数至少为1位,若整数位为自然数打头,后面可添加任意多个整数,小数位至少1位
    
    regIntOrFloat=regInt+'|'+regFloat#整数或小数

    patternIntOrFloat=re.compile(regIntOrFloat)#创建pattern对象,以便后续可以复用
    if patternIntOrFloat.search(str):
        return True
    if re.search(patternIntOrFloat,str):
        return True
    if re.search(regIntOrFloat,str):
        return True
    else:
        return False
                
if __name__=='__main__':
    print isNumReg("0.360")#True

第2-6行说明开始符号(^)和结束($)的作用.

第9行、第13行说明了正则表达式中“或者”的表示方法为一条竖线(’|’)

第16行、第18行、第20行三者相互等价,即可以用pattern对象的search方法,也可以将pattern对象作为re.search()的参数,也可以将模式字符串作为re.search()的参数.

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值