python之正则表达式

来源:互联网 发布:单片机怎样驱动12v 编辑:程序博客网 时间:2024/06/07 07:39

前述:
阿,又是正则表达式,这已经是第三次学正则表达式,但是也是学的最好的一次,这次看到北京理工大学嵩天老师的视频,讲的很好。以下是视频ppt的一些截图和同时。
提示:
0.一定要注意,(){}[]当你要匹配的内容里面与前面的大,中,小括号时,一定要在前括号加\后括号也要加\,防止正则表达式识别错误,因为括号在正则表达式里面是操作符。
1.正则表达式除了可以用了字符串(string)来表示还可以用正则表达式自己的字符串表示(raw string)

2.如何使用(raw string)只要在字符串前面加一个r,例如r”^[A-Za-z0-9]+$”。

3.raw string 和 string的区别,普通string当遇斜杠,双引号等这些符号时,必须要使用转义字符,但是raw string则不需要,因此raw string比起string更加简洁

4.贪婪匹配
正则表达式默认的搜索模式是贪婪模式,举个例子来说“http://.+.gif”我们用前面这个正则表达式来搜索网页中的gif图片,但是如果出现这种情况http://……. .gif……http://…… .gif那么正则表达式会返回从一开始的http://这个字符串位置开始到第二个.gif位置结束的字符串,也就是返回http://……. .gif……http://…… .gif ,并不会返回http://……. .gif

5.如何解决贪婪匹配(最小匹配)
解决的办法很简单,只要在gif后面加个+?号,那么现在的正则表达式就是“http://.+?.gif”,现在就能够在遇到http://……. .gif……http://…… .gif情况是,单独给你返回http://……. .gif了。gif后面的+?号是最小匹配的符号(最小匹配的符号还有三种,具体请查文末给出的资料),但似乎这个正则表达式还不是很完美。

6.搜索gif网址的新问题。
假如是这样的网址呢?“http://……. .html……http://…… .gif”,那么就算我们使用最小匹配可能还会返回“http://……. .html……http://…… .gif”,那该怎么办呢?

7.终极搜索gif网址正则表达式
“http://[^:]+?.gif”,没错就是前面这个正则表达式,我们只要保证他里面没有“:”这个就好了。可能有的童鞋就会问了,那这样行不行呢,”http://[^:]+?.gif”,反正我觉得是不行的。为什么呢?因为[^http:]表示的意思是中间不能出现h,t,p,:这几个字符,而不是不能出现http:这个字符串,那怎么才能跟正则表达式说不要里面出现这个字符串呢?我很抱歉,到目前为止我也还不知道,但是上面给出的正则表达式已经很好的解决了搜索网站的问题,所以如果你知道,还劳烦在下面留言,卸卸。
特别提示
博主弄迷糊过正则表达式中的match()的含义,因此在使用该函数的时候,一定要注意re.match()
是从字符串的开始位置开始匹配起匹配正则表达式,
是从字符串的开始位置开始匹配
是从字符串的开始位置开始匹配
一定要注意是从字符串的开始位置开始匹配,意味着如果字符串开头都对不上正则表达式,就算字符串里面有符合正则表达式的内容,也不会被匹配到,如果你想匹配到,建议用re.search()和re.findall()等函数

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

北京理工大学嵩天老师视频课程资料下载地址
链接:http://pan.baidu.com/s/1c2zsTGk 密码:i3v6

原创粉丝点击