网站首页 > 技术文章 正文
《Python》基础篇:正则表达式长度限定。
一般来说,无论是玩游戏还是注册APP,对账号注册都有一个账号的规则。通常来说,它允许账号使用什么规则?使用a到z,小写a到z和大写的a到z,还有数字0到9,这是通常来说的账号的规则。
还有什么规则?还有一个长度限定规则,比如账号限定长度是8到20,这是账号的通常规则。
在正则表达式里面怎么去利用这个规则?声明一个变量叫rule,这是规则的意思。把这个规则写到变量里面来,中括号,a到Z0杠9,需要限定长度。怎么限定长度?写一个大括号,把长度8-20写到大括号里面来。
再来看这个规则,这是个6上面那个符号,这个符号代表什么意思?它是匹配字符串开头,还有一个美元符号,dollar匹配字符串结尾。如果把这两个符号用上,就可以把一个字符串从头匹配到尾。
怎么写?可以这么写,前面就写shift6,最后就写dollar是shift4,这样就可以表示把字符串从头匹配到尾。在这里定一个字符串,随便写,写一些中文,写一些字母,写些数字进去,再来匹配它,result等于find a war。
前面的规则直接写rule,后面就是字符串,这里要改一改,8-20要写的8逗号20,而且要注意,逗号后面不能有空格,因为它是正则表达式的规则。
·看这里,m逗号n,再看结果,它可以返回什么?返回个空,说明什么?说明内容不满足规则,因为规则里面只有字母还有数字,毕竟有长度限定。但是这里先不管长度,还有中文,中文肯定不行,把中文给删掉。
·再看结果,这样就可以把结果输出出来,为什么?因为结果是满足规则的,满足规则就可以输出结果。
·来想一想如果要匹配一个手机号要怎么设计规则?首先手机号一般都是以一开头,所以第一位应该是一,从第二个开始就无所谓了,就是0-9。
·长度有几位?手机号数一数,长度是11位,一般来说手机号长度是11位。第一位已经定好了,是一,后面是0-9。
·后面长度限定只需要限定后面的长就可以了,长是几?长是10。
·把上面代码复制过来,然后改一改,这里注释和反注释都有快捷键,是Ctrl加斜杠,就是问号斜杠,正斜杠。
·这里随便写一个字符串,直接匹配,有什么结果?空,显然不匹配,因为还有字母,把字母删掉看能不能成功,也不成功,因为长度不正确,需要有11位,来写一下,123456789,这就是9位,再随便写两位,66,这样就可以匹配出来,11位,因为第一位是一,这个是定好的,定好了,改成2了,不行,又错了,只有写一才能够匹配成功。
第一位必须是一,因为前面这样写可能看的不太明白,如果在一后面写个一,这样写是不是就更加清晰?第一位必须是一,长度也是一,后面开始,从第二位开始就是0到9,长度是几?长度是10,这么写也是一个意思,只不过前面这个一被省略了,能不能明白?
所以它是这样子的,这样就会匹配什么?匹配手机号,多写个行不行?多写了一位还是返回结果了,只不过最后多写了一位,没有把它输出出来,多写几位了?也是一样,只到第11位就停止了,但是这不是我要的结果,只需要告诉我们判断结果是正确还是错误就行。
应该怎么办?加这两个符号,再来匹配,这样就空了,就错了,只能写11位,66,差一位,这样写多一位少一位都不行,只能写11位,能不能理解?
- 上一篇: PHP七天系列之错误处理
- 下一篇: 一日一技:在python中查找字符串的长度(3种方式)
猜你喜欢
- 2024-11-20 Python基础编程——算术运算
- 2024-11-20 Python字符串方法之-字符串填充
- 2024-11-20 Python第14题:最长公共前缀【leetcode】
- 2024-11-20 从 0 到 1:构建强大且易用的规则引擎
- 2024-11-20 分享3个干货满满的Python实战项目,点赞收藏
- 2024-11-20 python笔记8:静静一起来学习-字符串相关方法
- 2024-11-20 零基础Python完全自学教程14:Python中的序列知识详解
- 2024-11-20 你需要了解的最重要的Python概念
- 2024-11-20 Python整数缓存机制
- 2024-11-20 老鸟进阶必备技能,看懂显示器参数
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)