专业编程基础技术教程

网站首页 > 基础教程 正文

Python中初识正则表达式 Python中初识正则表达式 #python编程

ccvgpt 2024-07-26 00:42:10 基础教程 47 ℃

正则表达式。

现在给大家讲一下字符串当中的正则表达式。什么叫做正则表达式?它是指一个特殊的字符序列,说白了它也是一个字符串,只不过这个字符串比较特殊,它能够帮助用户非常方便的去检查另外一个字符串是否符合某种规则(模式)。

Python中初识正则表达式 Python中初识正则表达式 #python编程

在这的时候正则表达式当中有个叫元字符的概念,它是指具有特殊意义的专用字符。比如给大家列出来这两个,一个是尖角号表示开始,一个是dollar符,它表示的是结尾。

在右侧又给大家写了这样的两个例子,如果在me之前加了一个尖角,那么它就是个正则表达式。只不过这个正则表达式是再继续去判断其他字符串的时候,其他的字符串如果以me开头的就会获取到。再看一下下面这写个$me,这是一个正则表达式。

如果在使用这个规则去判断另外的字符串的时候,另外的字符串要是以me结尾的就可以获取到。这个什么都没写,就是只要字符串当中包含me就都可以进行匹配。

除了这两个元字符之外还有哪些元字符?在这的时候看一下第一个叫.,它匹配任意的字符,除了\n。在这给大家举了这样的一个例子,在这有一个字符串,在这个字符串当中有plnytholtn,这是个字符串。如果使用表这个元字符去到这个字符串当中去匹配的时候,可以获取到p.y,th,o,lt,n,唯独获取不到n。因为人家说只要这些都满足表这个规则。

再看一下\w,它是匹配字母数字下划线。在我的这个字符串当中看,Python是字母,In是换行,123是数字,那么它可以匹配什么?如果使用w这个元字符可以从字符串当中获取p、y、th、o、n、1、2、3,但是获取不了\n。

大写的\W是匹配非字母数字下划线,只要不是字母数字下划线都能获取到。在这还是pythonln123,它只能获取到谁?ln,因为它是字母,人家获取是非字母,这123是数字,人家获取的是非数字,所以只能获取\n。

这个\s匹配任意空白字符,在这写的pythonlt123,在这个当中字符串当中如果要使用\s去进行匹配的时候,它只能获取\t,因为只有\t是属于谁空白字符,这个大的S匹配任意非空白字符。在我的字符串当中,谁是非空白字符?python123它们是非空白字符。

这b匹配位于开头或者结尾的空字符串,在这写的是Python空格,Python php能获取到哪个?能获取到第二个p,也就是和第二个p是相匹配的,因为p前面有一个空白字符。

看一下\d,\小写d匹配任意十进制整数,在这的时候显示pythonlt123,如果使用\d的时候可以提取到123,这些都叫做元字符,也就是固定的规则。

再看什么叫限定符?限定符是用于限定匹配的次数,就是出现几次,这个问号是匹配前面的字符0次或1次,要么没有,要么就是最多一次。在这举个例子,colou?问号r会匹配这个u,0次或1次,所以它可以得到什么?看了就没有也行。

有,有u也可以,这是它匹配的结果。

·再看这个加号,它匹配前面字符一次或多次,至少要有一次,多则不限。所以如果我在这写个加号,它会匹配u至少1次,比如colour或者你这个u多写几个都行。

·然后这个*,它可以匹配前面的字符0次或多次,你可以没有也可以多次。在这的时候用的什么*号匹配u,0次或多次,你写color也行,或者是colouuuuuu都可以。

·这个花括号里面n,它会匹配前面字符n次,这几次我在这写上2,那也说它会匹配这个u两次,就写两个u。

·如果是n逗号的这种形式,它是匹配前面的字符最少n次,那它最少两次,多则不限,就这个u的个数至少两次,多则不限。

·如果是这种n逗号m的形式,它是匹配前面字符最小n次,最多n次。你看我这写的什么,最小几次,两次最多几次,4次也就说可以两次,可以三次,也可以是4次,剩下小于两次和多于4次的都不可以。这个叫做限定符,用于限定所匹配到次数。

·现在咱们再看,除了刚才给大家讲到的,还有些其他的字符,比如说我们区间的这个方括号,在正则表达式的时候,它表区间,它是匹配这个方括号当中所指定的字符。你看我在这写个点,写个问号,写个叹号,那么它会匹配出什么?咱们的点匹配出问号,匹配出感叹号。

·那么如果方块中写着0-9,它会匹配0123456789这样的整数,也就说0123456789是不是相当于杠b小写的那个d。

·再看排除符,这个尖角号,它也叫排除符,匹配不在方括号当中所指定的字符。那你在这的时候看,我写0-9就是匹配加个尖角号,它叫做匹配。除了0123456789之外的任意的字符。

中间写竖线的叫做什么?叫做选择符。在这写\d,{18}就是说18字写个/d{15},它是作为匹配15位身份证或者18位身份证的都可以。

然后转义字符,在正则表达式当中也有转义字符,比如这个,它表示是匹配任意的字符,但是如果想把它作为普通的字符来使用,就需要使用斜线来进行转义,写个斜线写个点,它就不再是匹配任意字符了,它就是用于普通字符。

中文怎么办?如果想提取指定的中文,中文的范围是u4c00,一直到u9fa5,这什么十六进制,在这个区间范围的都是中文。

看一下还有分组符,使用小括号的就会改变限定符的作用。在这写的six竖线,这不是什么选择符吗?four它会匹配six或fourth,这很正常,就是左边的或者是右边的。但是如果加了小括号之后,加了小括号就sixth或者是fourth,比如th既属于six里的,也属于four里面的。

这个叫什么?这个是一些其他的字符。

现在再来一会,在下个视频当中去给大家讲解内置模块re的使用。

Tags:

最近发表
标签列表