python 66:re正则表达式2(全- tcy)
发布日期:2021-06-29 14:48:14 浏览次数:2 分类:技术文章

本文共 3565 字,大约阅读时间需要 11 分钟。

re 函数: 2018/12/21

目录:

re模块函数: 

re.compile(pattern,flags = 0 )        #将RE编译为对象re.match(pattern,string,flags = 0)    #字符串的开头匹配返回match对象或Nonere.search(pattern,string,flags = 0)   #字符串查找任何第一个返回match对象或Nonere.findall(pattern,string,flags = 0)  #匹配的所有子字符串,作为列表返回。re.finditer(pattern,string,flags = 0) #匹配的所有子字符串,作为迭代器返回re.split(pattern,string,maxsplit = 0,flags = 0) #按匹配子串分割返回列表。#maxsplit最大分割次数,默认全部分割。re.sub(pattern, repl, string, count,flags = 0)  #替换匹配子串返回替换后字符串。#参数repl:str或函数;count默认0匹配项都替换re.subn(pattern, repl, string, count=0, flags=0)#返回替换次数re.escape(tag)                                  # 转义正则表达式中具有特殊含义的字符 

实例: 

# 实例1:pattern = re.compile(r'\d+')              # 用于匹配至少一个数字m = pattern.match('one12twothree34four', 3, 10).group()    # 
从'1'的位置开始匹配,正好匹配re.match('com','comwww.runcomoob').group()# com match并不是完全匹配re.match('com$', 'comwww.runcomoob') # None 完全匹配re.match(r'From\s+', 'From amk ').group() # 'From ' 匹配任何空白字符# 多行模式match()仅匹配字符串开头,search()匹配每行开头。re.match('X', 'A\nB\nX', re.MULTILINE) # No matchre.search('^X', 'A\nB\nX', re.MULTILINE) #
# 实例2:re.search('\dcom','www.4comrunoob.5com').group()# 4com# 实例3:p = re.compile(r'\d+')p.findall('o1n2m3k4'))# ['1', '2', '3', '4']re.findall(r'\w*oo\w*',"good cool,so on...") # 查找所有包含'oo'的单词 ['good', 'cool']re.findall(r'(\w)*oo(\w)',"good cool,so on...") #()表示子表达式 [('g', 'd'), ('c', 'l')]# 实例4:iter = re.finditer(r'\d+','12 dm44ers , 11 ... ')for i in iter: print(i.group(),i.span())# 12 (0, 2)# 44 (5, 7)# 11 (13, 15)#实例5:分割re.split(r'\s+', ' one two three ')#按空格分割 # ['', 'one', 'two', 'three', '']re.split('\d+','one1two2three3') #按数字分割 # ['one', 'two', 'three', '']re.split('a','1A1a2A3',re.I) # ['1A1', '2A3']未能区分大小写re.split('a','1A1a2A3',flags=re.I) #['1', '1', '2', '3']#实例6:替代 re.sub(r'\s+', '-', "he is cool, clever")# he-is-cool,-clever#实例6:替代 - 使用函数text = "he is cool, so on..."re.sub(r'\s+', lambda m:'['+m.group(0)+']', text,0)#将字符串中的空格' '替换为'[ ]' # 'he[ ]is[ ]cool,[ ]so[ ]on...'#实例6:替代 - 使用函数# 将匹配的数字* 2def mul(matched):v = int(matched.group('group_name1'))return str(v *2)s = 'A23G4HFD567're.sub('(?P
\d+)', mul, s)#'A46G8HFD1134'#实例7:re.sub("g.t","is",'I get A, I got B') # I is A, I is Bre.subn("g.t","is",'I get A, I got B')# ('I is A, I is B', 2)re.subn('[1-2]','A','1234-ab') # ('AA34-ab', 2) 

备注split函数:

# 1)re.split 则允许用任意长度的逗号和空格序列来分割字符串:some_text = "alpha, beta,,,,gamma delta"re.split("[, ]+", some_text) # ['alpha', 'beta', 'gamma', 'delta']# 2)模式包含小括号,那么括起来的字符组合会散布在分割后的子字符串之间re.split("o(o)", "foobar")   # ["f", "o", "bar"] 返回值是子字符串的列表re.split("oo", "foobar")     # ['f', 'bar']# 3)最多可以分割的次数:re.split("[, ]+", some_text, maxsplit=2)   # ['alpha', 'beta', 'gamma delta']re.split("[, ]+", some_text, maxsplit=1)   # ['alpha', 'beta,,,,gamma delta']re.split(r'\W+', 'Words, words, words.')   # ['Words', 'words', 'words', '']re.split(r'(\W+)', 'Words, words, words.') # ['Words', ', ', 'words', ', ', 'words', '.', '']re.split(r'\W+', 'Words, words, words.', 1)# ['Words', 'words, words.']re.split('[a-f]+', '0a3B9', flags=re.IGNORECASE)# ['0', '3', '9']# 4)组在字符串开头匹配,结果将以空字符串开头结尾re.split(r'(\W+)', '...words, words...') # ['', '...', 'words', ', ', 'words', '...', '']re.split(r'\b', 'Words, words, words.')  # ['', 'Words', ', ', 'words', ', ', 'words', '.']re.split(r'\W*', '...words...')          # ['', '', 'w', 'o', 'r', 'd', 's', '', '']re.split(r'(\W*)', '...words...')        # ['', '...', '', '', 'w', '', 'o', '', 'r', '', 'd', '', 's', '...', '', '', ''] 

转载地址:https://chunyou.blog.csdn.net/article/details/85156993 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python 66:re正则表达式3(全- tcy)
下一篇:python 66:re正则表达式1(全- tcy)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月28日 23时42分09秒