re正则表达式判断是否为数字

本文介绍如何利用Python的re正则表达式判断一个字符串是否符合数字格式,考虑了包括正负号、小数点在内的各种情况。通过提供的代码示例,可以匹配整数、浮点数以及带正负号的数字,确保不会出现010这样的错误匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先上代码:

import re
n = input('判断是否为数字:')  # 这里的 n 为字符串
if re.match(r'(^[-+]?([1-9][0-9]*|0)(\.[0-9]+)?$)', n):
    print('是数字')
else:
    print('不是数字')

分析:
先来看看一些数字:
3, 3.4, 0, 0.5, 1.5,-34, +0.5
要考虑的因素大概有(0,小数点,正负号)

式子以 ^[-+]? 开头,这个毫无疑问,正负数开头,可有一个或无;
接着是 ([1-9][0-9]*|0) 这里使用了 ' | ' 符号连接,这样如3,30,330,0开头的也能匹配到,不会有010零开头这样子的情况;
再接着以 (\.[0-9]+)?$ 结尾。这里用括号把 \.[0-9]+ 给括起来让' ? '作用于它,这样就保证了既 可以有小数点(1个)也可以 没有小数点。最后还要加个 $ 符号保证完美性,不会有在最后还有其他字符的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值