优秀的编程知识分享平台

网站首页 > 技术文章 正文

Python 正则表达式 长度限定

nanyue 2024-11-20 19:34:12 技术文章 2 ℃

《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位,能不能理解?

Tags:

最近发表
标签列表