python之正则表达式

来源:互联网 发布:手机淘宝不能付款 编辑:程序博客网 时间:2024/06/12 03:33

大家好,今天我学习了正则表达式,一直想学习相关内容,因为做计算机的,不学正则表达式,很多匹配存在问题,正好我上次和大家分享了有关split()函数,在这里也出现了,和上次的正好做一个衔接。

本来今天没有下定决心学的,因为我突然心情不好,我就想,我都已经心情不好了,如果再不做点什么有意义的事情,今天就虚度了,于是乎,我来和大家分享一下,也记录一下我失恋阴霾的日子,然后走上计算机大神的道路。

今天在实验室,和师兄聊到了作为程序员骄傲的发际线,师兄说,对于油脂性脱发,要每天洗头,这样也许会有所预防。我只是转达了相应的说法,有没有道理大家自己辨别哟,哈哈。言归正传,我们开始分享正则表达式。

我学习python的主要网页是菜鸟教程和廖雪峰老师教python的两个地方,今天做一个总结和扩充,希望能对大家有所帮助。文中有些部分是摘抄自原文,有的是自己加入了理解和感悟之后,所以我会将网址链接附在最后,有不是很明白的可以看原文。

我的思路是:从基础的符号入手,从组合入手,最后,是复杂一些的正则表达式。

1.简单的正则符号

\d: 匹配一个数字
\w:匹配一个字母或者数字
\s:匹配一个空格。\s+表示至少有一个空格,如:‘ ‘(一个空格), ’  ’(两个空格)。
^: 表示行的开头,^\d表示以数字开头。
$: 表示行的结束,\d$表示以数字结束。
A|B:表示或的关系,A或者B。
*: 表示任意个字符(包含0个)
+: 表示至少一个字符
?: 表示0个或者1个字符。
例如:
{n}:表示n个字符。
{n,m}:表示n-m个字符。


组合:

'\d\d\d'表示匹配三个连续的数字,例如“007”。
'\w\d'表示匹配一个字母和数字,或者匹配两个连续数字。例如’a3‘或者‘74’。
\d{3}表示匹配3个数字,例如‘010’。
\d{3,8}表示3-8个数字,例如‘12345678’或者‘52461’等等。
复杂一些:\d{3}\s+\d{3,8}
解读如下:
1.\d{3}表示匹配3个数字,例如‘123’;
2.\s表示匹配一个空格(也包括Tab等空白符),所以\s+表示至少有一个空格。
3.\d{3,8}表示3-8个数字,例如‘87654321’。
所以这个正则表达式表示匹配类似于:‘010   87654321’。

用[ ]匹配,比如:
1.[0-9a-zA-Z\_]表示匹配一个数字、字母或者下划线。0-9表示从0到9。a-z表示从a到z。A-Z表示从A到Z。
2.[0-9a-zA-Z\_]{0, 19}在上一行的基础上增加了个数限制,0到19个。
3.[a-zA-Z\_][0-9a-zA-Z\_]*表示可以匹配由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串
4.(\d+)(0*)$
这里面加入分组,()表示分组,(\d+)为一组,(0*)表示另一组。$表示以什么结尾。
(\d+)表示一到多个数字。

(0*)$表示任意个(包含0个)数字零为结尾。

有以上两部分组成的字符串。例如:120100等等。

5.(\w(\w\w))这里面括号则作用是分组,一个组是(\w\w\w),另一个组就是(\w\w),\w表示数字或者字母。

有数字或者字母组成的连续三个字符串,如果分组的话,就是由数字或者字母组成的连续三个字符串或者两个字符串。



我们本次先分享到这里,还有部分函数的内容以及转义字符的相关理解,我们以后继续学习,希望和大家一同进步,今天11月23日,生活还在继续,我要努力加油。



原创粉丝点击