re模块是python将正则表达式封装之后的一个模块.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。
#正则表达式: 从一串字符中,找出你想要的字符串. import re ### 单个元字符的匹配 # \W 除了数字 ,字母,中文, 下划线 print(re.findall('\W','dsadas1231 +1-+2*/,.')) # \w 匹配中文,数字,字母,下划线 print(re.findall('\w','jdsa213-+*/,./:[]')) # \s 匹配 :空格 \t \n print(re.findall('\s','a \t \n d ')) # \S 匹配: 非 空格 \t \n print(re.findall('\S','\t \nas \t da ')) #\d 只匹配数字: print(re.findall('\d','123da13d')) #\D 值匹配非数字 print(re.findall('\D','dsa1321')) # \A 和 ^ 从开头开始匹配 print(re.findall('\Ahe','he kf danc j he ,d')) print(re.findall('^he','he kf danc j he ,d')) # $ \Z 从末尾开始匹配 print(re.findall('aaa\Z','dsaaaddssaaa')) print(re.findall('aaa$$','dsaaaddssa1aaa')) # \n \t print(re.findall('\n','d\n d\n ds\ta')) print(re.findall('\t','d\n d\n ds\ta')) #### 元字符匹配 # . 匹配任意一个字符 # 如果匹配成功光标则移到匹配成功的最后的字符 # 如果匹配未成功光标则向下移动一位再次匹配 print(re.findall('a.b','aa ,,dan a1b')) # ? 匹配 0个 或者 1个 由左边字符定义的片段 print(re.findall('a?b','ab aabb aaabbb')) # ['ab', 'ab', 'b', 'ab', 'b', 'b'] print(re.findall('a?b','sb ab aabb')) # [b, ab ,ab ,b] # * 匹配 0个 或者 多个 左边字符表达式, 满足贪婪模式(即:只要符合就ab都获取) print(re.findall('a*b','ab abb a b aabb')) # ab ab b b aab b # + 匹配 1个 或者 多个 左边字符表达式 ,满足贪婪模式 print(re.findall('a+b','ab abab aab bba aabb b')) #ab ab aab aab #{m,n} 匹配m个至n个(能取到n)个左边字符表达式. 满足贪婪模式 print(re.findall('a{1,3}b','ab abb b bb aaab aaaaaab')) # ab ab aaab aaab # .* 贪婪匹配 从头到尾 print(re.findall('a.*b','aaa bbbliye dkjsah bnb')) print(re.findall('a.*b','aaa b\nbbliye dkjsah bnb')) # .*? 此时的? 不是对左边的字符进行0次或者1次的匹配 # 而只是针对.* 这种贪婪模式进行一种限定:告知它要遵循非贪婪模式, 推荐使用!! # 0给或者多个 print(re.findall('a.*?b','ab a#b bb abb aabb')) # ab a#b ab aab ### 常用的方法 # findall() 找所有 print(re.findall('正则表达式','ab a#b bb abb aabb')) # 根据正则遍历整个字符 ,返回成一个列表 # search() 方法 找到第一个符合字符的就返回 ,返回成一个对象, 以对象.group()进行取值 ret=re.search('正则',字符串) print(re.group()) # 取值 #match() 方法 从头开始找符合正则的字符串,找到返回一个对象,找不到返回None 以对象.group()进行取值 # search() 方法 + ^(从头开始) 相当于 match()方法 ret=re.match('正则','字符串') # 从头开始 print(ret.group()) # 取值转载于:https://www.cnblogs.com/dengl/p/11122843.html