正在总结2之正在模块函数

 

re.match(r"a","")                                                           #r表示元字符
re.match(r"a","abc")                                                      #match从字符串起始为匹配,开始匹配则为匹配,否则不匹配
re.match(r".","a\nbc")                                                   #点.表示匹配任意非\n的字符
re.match(r"...","a\nbc")                                                 #多个点表示匹配多个连续的非\n字符,如果不满足连续多个非\n字符,则不匹配
re.match(r"...","a\nbc",re.DOTALL)                              #re.DOTALL表示把点变成可以匹配任意字符(包含\n)
re.match(r"[abc]","btcd")                                              #[]表示开始位置匹配中括号内任意一个字符就算匹配成功
re.match(r"[^abc]","cbds")                                            #^在中括号内表示开始位置不能匹配到中括号内的任意一个字符才算匹配成功
re.search(r"^abc","dabc").group()                                #^在中括号外表示开始位置能匹配到字符串abc才算匹配成功
re.search(r"^abc","abchdhd").group()                             #^在中括号外表示开始位置能匹配到字符串abc才算匹配成功
re.search(r"^abc","abfc").group()                                  #^在中括号外表示开始位置能匹配到字符串abc才算匹配成功
re.findall(r"\d+","1wde234rg5545")                                #匹配出所有的单个或连续数字
re.findall(r"\d+[a-z]+","123abc524rrf")                              #findall()函数时,如果有()分组,只会匹配()内的内容,无()的不生效
re.findall(r"\d+([a-z]+)","123abc524rrf")                             #findall()函数时,如果有()分组,只会匹配()内的内容,无()的不生效
re.search(r"^Word$","Word")                                            #匹配指定字符串,被匹配的字符串不能多也不能少才能匹配
re.search(r"\AWord\Z","Word")                                         #匹配指定字符串,被匹配的字符串不能多也不能少才能匹配与上面等价的
re.findall(r"[a-z]+$","ab\ncd\nef\n",re.M)                            #匹配多行末尾是否匹配
re.sub(r"\d+","|","123test345goood")                                 #替换,模糊替换
re.sub(r"\d+","|","123test345goood",1)                              #替换,模糊替换
re.subn(r"\d+","|","123test345goood")                                #替换,模糊替换,返回替换后的结果和替换次数的元组
re.subn(r"\d+","|","123test345goood",1)                              #替换,模糊替换,返回替换后的结果和替换次数的元组
#########引用###########
re.search(r"(?<=abc)\d+","abc520")                                      #表示匹配abc后面的数字,(?<=abc)作为一个开头引用条件
re.search(r"\d+(?=bb)","abc510bb")                                      #表示匹配后面连接bb的数字,(?=bb)作为一个结尾引用条件
re.search(r"(?<=abc)(\d+)(?=bb)","abc520bb")                     #表示匹配已abc开头,bb结尾的数字,abc与bb作为一个引用条件,不作匹配
#####否的引用#########
re.search(r"(?<!abc)\d+","abc520")                                        #表示匹配不是abc后面的数字,(?<!abc)作为一个否定开头引用条件
re.search(r"\d+(?!bb)","abc510bb")                                         #表示匹配后面连接不是bb的数字,(?!bb)作为一个否定结尾引用条件
re.search(r"(?<!abc)(\d+)(?!bb)","abc520bb")                          #表示匹配不是abc开头,且不是bb结尾的数字,abc与bb作为一个否的引用条件,不作匹配
re.search(r"\d+","abc123\nde23\n",re.I|re.M|re.S)                   #多种模式用|连接

 

 re.search(r"(\d+)([a-z]+)(\d+)","123derr455dee").group(0) 

 #.group()与.group(0)都表示返回所有匹配的值,.group(1)表示左边第一个括号内\d+匹配的值,
.group(2)表示左边第二个括号内[a-z]+匹配的值,以此类推

num=re.compile(r"\d+")                                                       #表示把匹配(r"\d+")规则赋值给num对象,可以直接num.search("asd23dde4d3")使用匹配
等价re.search(r"\d+","asd23dde4d3")

 

posted @ 2018-12-17 12:01  WhiteMouse  Views(126)  Comments(0Edit  收藏  举报