re模块(正则表达式)

正则表达式(re模块)是一种小型的,高度专业化的编程语言。(在python中)它内嵌在python中,并通过re模块实现。正则表达式模块被编译成一系列字节码,然后由用c编写的匹配引擎执行。

import re
s ="hellopythonworldworl2worworllpyddon"
# print(re.findall("py..on",s ))
# print(re.findall("^py..on",s ))
# print(re.findall("py..on$",s ))
# print(re.findall("worl*",s ))
# print(re.findall("worl+",s ))
# print(re.findall("worl?",s ))
# print(re.findall("worl{2}",s))
# print(re.findall("worl*?",s ))
# print(re.findall("worl+?",s ))       #加“?”是使“+”(贪婪匹配:匹配最多的元素)变成惰性匹配(匹配最少的元素)
# print(re.findall("worl??",s))
# print(re.findall("worl[a-z]",s ))
# print(re.findall("worl[^a-z]",s ))     #"[]":表示或者。在[]里的所有字符都只是字符,无其他含义,除"^"(表示“非”),“-”(表示范围),“\”:将元字符转化为普通字符
# print(re.findall("worl\S",s ))
# print(re.findall('(wor)+',s ))
# print(re.findall('worl+?',s ))
# s='abcabcabchjku'
# print(re.findall("(?:abc)+",s))       #"?:"表示:取消优先显示括号内容
# print(re.findall("(abc)+",s))         # 此结果为"abc"而非"abcabcabc",因为优先显示括号内容。
# s ='hello  wor%ld PYT*Hon! 43&52&43^87'
# print(re.findall("\d+",s ))
# print(re.findall("\W+",s ))
# print(re.findall('\w+',s ))
#
# s = "hello I\crld LIST"
# print(re.findall("I\\\\c", s))   # python解释器会转移一次,变成 "I\\c", 然后re模块再转移一次,变成"I\c"
# s = "liubei22guanyu21zhangfei20zhaoyun"
# print(re.search('(?P<df>[a-z]+)(?P<age>\d+)',s ).group("age"))  #只匹配第一个符合条件的字符,此属于分组,要通过“?P<组名>”创建组,并.group()展示出来
# print(re.search("(?P<df>[a-z]+)",s ).group())
# print(re.match("\D+",s ).group())    #也是只匹配第一个符合条件的字符,但是只在开头第一个位置匹配
# print(re.split("[lu]",s ))      #依“l或者u”分开s,若l或者u的左或者右没有字符,会以空格的形式打印
# print(re.sub("\d","P",s ,4))       #(被替换元素,替换元素,被操作对象,操作次数)
# print(re.subn("\D","0",s ))        #subn:会把所有要替换的元素都替换掉,并且打印出替换的次数
# it =re.finditer("\d+",s)
# print(it.__next__().group())
# print(it.__next__().group())       #.finditer:将符合条件的元素组成一个迭代器,通过.__next__打出
# com =re.compile("\d+")             #.compile和.findall区别:多次匹配时,compile不用每次都写“\d”
# print(com.findall(s))
posted @ 2019-09-10 15:37  itheone  阅读(172)  评论(0编辑  收藏  举报