正则表达实例

来源:互联网 发布:sftp端口udp 编辑:程序博客网 时间:2024/05/21 12:49

推荐博客

1

import res='1021533940@qq.com'r = re.findall('^\d{9,11}@(?:qq|pp|aa)\.(?:com|sina|cn)$',s)print r['1021533940@qq.com']注:使用了非捕获组(?:xx|yy)

2

import res='1021533940@qq.com'r = re.findall('^(\d{9,11}@(qq|pp|aa)\.(com|sina|cn))$',s)print r[('1021533940@qq.com', 'qq', 'com')]注:使用了捕获组(),编号规则是以“(”从左到右出现的顺序,从1开始进行编号。通常情况下,编号为0的组表示整个表达式匹配的内容。

3

import res='1021533940@qq.com'r = re.findall('^102|com$',s)print r['102', 'com']注:^ $ 匹配首尾,当一个字符串的某一子串具有多种可能时,采用分支结构来匹配,“|”表示多个子表达式之间“或”的关系,“|”是以()限定范围的,如果在“|”的左右两侧没有()来限定范围,那么它的作用范围即为“|”左右两侧整体。

4

import res='1021533940@qq.com'r = re.findall('^(102|com)$',s)print r[]注:当^ $同时存在时要匹配的为中间内容必须满足的形式,所以为空

5.

import res='aa<div>test1</div>bb<div>test2</div>cc'r = re.findall('<div>.*?</div>',s)print r['<div>test1</div>', '<div>test2</div>']注:此为非贪婪正则表达式二采用的是非贪婪模式,在匹配到第一个“</div>”时使整个表达式匹配成功,由于采用的是非贪婪模式,所以结束匹配,不再向右尝试,匹配结果为“<div>test1</div>”。

6

import res='aa<div>test1</div>bb<div>test2</div>cc'r = re.findall('<div>.*</div>',s)print r['<div>test1</div>bb<div>test2</div>']注:此为贪婪在匹配到第一个“</div>”时已经可以使整个表达式匹配成功,但是由于采用的是贪婪模式,所以仍然要向右尝试匹配,查看是否还有更长的可以成功匹配的子串,匹配到第二个“</div>”后,向右再没有可以成功匹配的子串,匹配结束,匹配结果为“<div>test1</div>bb<div>test2</div>

7

import res='qqq11111qqq11qqq11111qqq'r = re.findall('[^\d]+\d*[^\d]+',s)print r['qqq11111qqq', 'qqq11111qqq']注:注意字符的站位http://www.jb51.net/article/73403.htm
0 0
原创粉丝点击