博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 66:re正则表达式2(全- tcy)
阅读量:1883 次
发布时间:2019-04-26

本文共 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', '...', '', '', ''] 

转载地址:http://qfqbf.baihongyu.com/

你可能感兴趣的文章
Java 读写锁
查看>>
JVM Minor GC、Full GC和Major GC
查看>>
SpringBoot @Scheduled 执行两次的问题
查看>>
tomcat配置JVM
查看>>
Ubuntu软件安装&卸载
查看>>
面试笔试易错知识点Java篇八
查看>>
弹性事务框架ETF4J——面向Java微服务的交易最终一致性解决方案
查看>>
【Scala 教程】Scala 条件与循环语句
查看>>
【Scala 教程】Scala 集合类型
查看>>
使用 jsDelivr CDN 对 Github 图床进行加速,带给你如丝滑般的图片体验!
查看>>
JAVA 线程同步机制 synchronized
查看>>
MySQL 安装教程(无脑版)
查看>>
IDEA 怎么删除一个Module
查看>>
走进数据科学:最好是通过比网课更好的方法
查看>>
AI革命第一步:最容易被忽略但必不可少的物联网
查看>>
2020年开发运维工具清单:选择开发运维工具堆栈吧
查看>>
效率提升法则:高效人士不会去做的4件事
查看>>
8.PostgreSQL约束
查看>>
【技术分享】使用AES加密技术保障数据安全
查看>>
【应用实例】布线多?成本高?不可靠?泽耀方案没烦恼!
查看>>