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("worlS",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 Icrld LIST"
# print(re.findall("I\\c", s))   # python解释器会转移一次,变成 "I\c", 然后re模块再转移一次,变成"Ic"
# 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))
原文地址:https://www.cnblogs.com/itheone/p/11497776.html