鱼C论坛

 找回密码
 立即注册
查看: 2315|回复: 2

慕课老师说的会不会有点繁琐啊?

[复制链接]
发表于 2019-12-23 00:15:55 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 桐人囍亚丝娜 于 2019-12-23 00:35 编辑

収*O_20191223_001212.png


可以直接写成-?\d+吗?

収*O_20191223_002542.png

还有这个。。。也看不懂啊。。懂得符号意思,但是一搭起来就懵了,是有优先级的概念在里面的吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-12-23 00:40:17 | 显示全部楼层
不是说麻烦,有很强的规则在里面,具体看自己需要什么数据,需要怎么去定义规则。
  1. def checkPhon(str):
  2.     #1开头,第二位包括3578(第三位任意数字),或者是47,11位数的电话号码,从字符串提取,不从开始位置进行匹配,且不匹配结束位置
  3.     return re.findall(r"1(([3578]\d)|(47))\d{8}" ,str)

  4. def checkPone1(str):
  5.      #1开头,第二位包括3578(第三位任意数字),或者是47,11位数的电话号码  从开始位置进行匹配,匹配结束位置
  6.     return re.findall(r"^1(([3578]\d)|(47))\d{8}$" ,str)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-23 14:26:16 | 显示全部楼层
本帖最后由 jinlovelive 于 2019-12-23 14:39 编辑

^和$是为了保证整个字符串从头到尾都是都是整数,不然不管match还是search或者findall匹配'123d'都会成功,但显然这个明显不是整数字符串
第二个么,如果0003也算正整数的话这样编写也没问题,^[0-9]*是为了开头匹配0~9的数字0次及以上,[1-9]是匹配1~9的数字1次(从全局来看是为了不匹配空和中间不是数字的字符串),[0-9]*$是为了在末尾匹配0~9的数字0次或以上。
要避免00003这种情况的话改成r'^([1-9]?[1-9][0-9]*$)|(^0$)'
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-21 12:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表