正则表达式是对字符串的最简约的规则的表述。python也有专门的正则表达式模块re.
正则表达式函数 | 释义 |
re.match() | 从头开始匹配,匹配失败返回None,匹配成功可通过group(0)返回匹配成功的字符串 |
re.search() | 扫描整个字符串,并返回第一个匹配的字符串 |
re.sub() | 对符合要求的所有子串进行替换 |
re.findall() | 以列表形式返回所有符合条件的子串 |
re.split() | 以模式作为切分符号切分字符串,并返回列表 |
re.finditer() | 找到 RE 匹配的所有子串,并把它们作为一个迭代器返回 |
re.compile() | 把那些经常使用的正则表达式编译成正则表达式对象 |
re.group() | 返回被 RE 匹配的字符串 |
re.start() | 返回匹配开始的位置 |
re.end() | 返回匹配结束的位置 |
re.span() | 返回一个元组包含匹配 (开始,结束) 的位置 |
import re list=['15865548338cong' ,'abcd18701687236ef','gafei18511371536' ,'wb15865737271dad13244556677'] print(list) for items in list: # start l=re.match( r'd{11}',items ) print('match:',l ) if l!=None: print('match.group(0)',l.group(0)) # start-end m = re.search( '[0-9]{11}',items ) print('search:',m.group( 0)) print('search,.start:',m.start()) print('search,.end:',m.end()) print('search,.span:',m.span()) # replace n=re.sub( r'd','*' ,items) print('sub:',n ) # return list o=re.findall(r'd{11}',items ) print('findall:',o ) # str2list p=re.split( r'd+',items ) print('split:',p ) # iterator q=re.finditer(r'd+',items ) for i in q: print('finditer:' ,i.group()) pattern=re.compile(r'd{11}') print pattern.findall(items) print('***********************************************' )
输出结果:
['15865548338cong', 'abcd18701687236ef', 'gafei18511371536', 'wb15865737271dad13244556677'] ('match:', <_sre.SRE_Match object at 0x00000000025D2510>) ('match.group(0)', '15865548338') ('search:', '15865548338') ('search,.start:', 0) ('search,.end:', 11) ('search,.span:', (0, 11)) ('sub:', '***********cong') ('findall:', ['15865548338']) ('split:', ['', 'cong']) ('finditer:', '15865548338') ['15865548338'] *********************************************** ('match:', None) ('search:', '18701687236') ('search,.start:', 4) ('search,.end:', 15) ('search,.span:', (4, 15)) ('sub:', 'abcd***********ef') ('findall:', ['18701687236']) ('split:', ['abcd', 'ef']) ('finditer:', '18701687236') ['18701687236'] *********************************************** ('match:', None) ('search:', '18511371536') ('search,.start:', 5) ('search,.end:', 16) ('search,.span:', (5, 16)) ('sub:', 'gafei***********') ('findall:', ['18511371536']) ('split:', ['gafei', '']) ('finditer:', '18511371536') ['18511371536'] *********************************************** ('match:', None) ('search:', '15865737271') ('search,.start:', 2) ('search,.end:', 13) ('search,.span:', (2, 13)) ('sub:', 'wb***********dad***********') ('findall:', ['15865737271', '13244556677']) ('split:', ['wb', 'dad', '']) ('finditer:', '15865737271') ('finditer:', '13244556677') ['15865737271', '13244556677'] *********************************************** 请按任意键继续. . .