python输出整数部分和小数_Python 正则表达式:只要整数和小数

要求用户只能输入数字(包括整数和小数),如何用正则表达式验证用户输入?

以下为简单但不严谨的正则表达式:

pat1='\d+(?:\.\d+)?'#整数或小数

#金额数值(小数或整数,整数部分每三位数加一个逗号),例如24,581,644.07元、1,000,000元、100.0元、2.09万元、5亿元等,但不匹配1001元这类不符合逗号划分规则的金额

pat2='(?:\d{1,3},)?(?:\d{3},)*(?:\d{3})(?:\.\d+)?[亿万]*元|\d{1,2}(?:\.\d+)?[亿万]*元' #'^(?:\d{1,3},)*\d{3}(?:\.\d+)?[亿万]*元|^\d{1,2}(?:\.\d+)?[亿万]*元'

其中pat1中的

(?:\.\d+)

\.\d+表示小数点及后面多个整数,(?:exp)表示匹配exp但不获取,(?:exp)?最后的问号表示最多一个exp.

pat2的思路是把数值分为2类:三位数及以上的数值、最多两位数的数值。

其他

有两种思路:

1. 给出正确格式的正则表达式,然后看输入是否合法。

2. 列出所有错误的输入,看输入是否非法。

对于思路1,想想其实有点不可靠,因为Python关于正则表达式的re模块中,只有match()、search()、findall()方法可用,而它们都是在给出的字符串中查找匹配给定模式(Pattern)的子串,找到了就返回子串,没有就返回None,并不是说整个字符串是否匹配该Pattern,按照思路1,若

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值