0
点赞
收藏
分享

微信扫一扫

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

大沈投资笔记 2022-01-09 阅读 54

先上代码:

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个)也可以 没有小数点。最后还要加个 $ 符号保证完美性,不会有再最后还有其他字符的情况。

举报

相关推荐

0 条评论