标签:正则 pre ext jaf 字符 split 分组 abc bsp
一、常用模块
1、re模块
二、re模块
1、re模块是用来操作正则表达式
2、正则表达式——用来字符串匹配的
(1)字符组:[字符组] 例如[0123fdsa456*/-]
[0-9] 等同于[0123456789]
[a-z] 匹配小写字母
[A-Z]匹配大写字母
(2)特殊的元字符
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\n | 匹配一个换行符 |
\t | 匹配一个制表符 |
\b | 匹配单词的结尾 g\b以g结尾的单词 |
^ | 匹配字符串的开始 ^e |
$ | 匹配字符串的结尾 w$ |
\W | 匹配非字母、数字、下划线 |
\D | 匹配非数字 |
\S | 匹配非空白符 |
a|b | 匹配字符a或b 先长字符后短字符 |
() | 分组 |
[^abc] | 除了abc以外都匹配 |
(3)量词
* | 匹配0次或多次 |
+ | 匹配1次或多次 |
? | 匹配0次或1次 |
{n} | 重复多次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
(4)转义符 \
注:r"\\d" 表示取消转义,直接显示出本来的字符
3、使用re模块方法
# -*- coding:UTf-8 -*- #findall 是寻找所有匹配的字符 #参数一:需要匹配的字符,正则规则 #参数二:带匹配的字符串 import re re = re.findall(‘e‘,‘eva egon yuan‘) print(re) #从前往后,找到一个就返回,返回,返回的变量需要调用group才能拿到结果 #如果没有找到,那么返回NONE,调用gruop会报错 re = re.search(‘e‘,‘eva egon yuan‘) if re : print(re.group()) #natch是从头开始匹配,同样调用group方法 re = re.match(‘e‘,‘eva egon yuan‘) if re : print(re.group()) #split方法,分割 re = re.split(‘[ab]‘,‘adbc‘) #利用正则关系进行分割 #sub 方法,替换 re = re.sub(‘\d‘,‘H‘,‘efaflkdjafhg‘,1)#利用正则规则进行替换,将数字替换成H #subn方法 re = re.subn(‘\d‘,‘H‘,‘fdahglaag‘)#将数字地换成H,返回元祖,替换了几次 #compile方法,编译规则 obj = re.compile(‘\d{3‘) #将正则表达式编译成一个正则表达式对象,建立规则 re = obj.search(‘fdafsafdsa12313‘) print(re.group()) #finditer 返回一个存放匹配结果的迭代器 re = re.findall(‘\d‘,‘fwqre12314‘) print (next(re).group) #查询第一个结果 for i in re: print(i.group())
4、group(),里面可以加入整数值,表示取局部分组里的数值,分组的意思是正则表达公式里的分组
5、正则表达式中‘?’ 有三种功能, (1) 单独表示匹配0次或1次(2)放在字符串后面表示惰性匹配,表示匹配最少的次数(3)跟findall使用,在字符串内,表示取消优先级查询
6、在分组的时候,findall,split 是有分组优先级的,需要特别注意一下
标签:正则 pre ext jaf 字符 split 分组 abc bsp
原文地址:https://www.cnblogs.com/cxys85/p/9736793.html