文章目录
基本概念
正则表达式:字符串的处理方式,是通用的字符串方法。
字符组:同一位置上可能出现的各种字符,方括号之间列出所有可能出现的字符,例如:[0-9a-zA-Z]、[#.?],注意是一位和一个数。其中字符出现顺序和出现次数对字符组没有影响。
字符组的范围表示法:[ASCII码小的-码大的]
元字符:具有特殊意义的字母,比如-表示范围。若想表达其本身含义,需用转义字符\转义。
排除型字符组:,在字符组方括号开始后加上^,写成[^0-8],表示当前位置上,匹配一个括号内没有列出的字符,即匹配不是0-8的数字(9)。此外^可以用于正则表达式的开始处,表示起始位置;$可以用于正则表达式的结束处,表示结束位置。^[^0-9][0-9]$表示匹配以非数字开头,数字结尾的两位字符。
常用:
. :任意字符
字符组[0-9]表示数字,[a-z]表示小写字母,[A-Z]表示大写字母
\d:表示数字 ⟺[0-9]
\w:表示单词 ⟺[-0-9a-zA-Z],单词字符包括数字、字母、下划线;
\s:表示空白字符 ⟺ [ \t\n\v\r\f](第一个字符为空格),空白字符是一些特殊转义字符,如\t制表符,\n换行符,\r回车符等等。
\D:表示非数字字符,
\W:表示非单词字符,
\S:表示非空白字符。是对普通字符组简记的互补,利用其互补特性,可以实现全集效果,如[\d\D]、[\w\W]、[\s\S]均可表示匹配任意字符。
量词:
*:重复任意次(0次或多次)
+:重复1次或多次
?:重复0次或1次
{n}:重复n次
{n,}:重复n次或更多次
{n,m}:重复n到m次
贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配。.,*,+适用
后面加上?为将贪婪匹配模式转为非贪婪匹配模式,会匹配尽量短的字符串
参考此博文:https://www.cnblogs.com/shenjianping/p/11647473.html
Python之re模块
1.regex = re.compile(pattern)
将pattern编译成可复用的正则表达式对象,一次编译多次使用,有利于节约CPU周期,将相同的pattern应用到多个字符串上时。
2.regex.split(text) :
将text按pattern分隔
text = "foo bar\t baz \tqux"
regex = re.compile('\s+') # 该pattern匹配所有空白字符
regex.split(text) # 将text按pattern分隔,['foo', 'bar', 'baz', 'qux']
3.newtext = regex.sub(‘new’,text)
将text中的所有匹配项替换为‘new’
regex.sub(':',text) # 将text中的所有匹配项替换为‘:’,foo:bar:baz:qux
regex.subn() : 替换第n个出现的匹配串
使用\1,\2,…来引用替换字符串中的匹配组元素
4.regex.findall(text) :查看text中所有能够匹配到的模式
regex.search(text) :返回text中第一个匹配项
regex.match(text) :只在pattern出现在text起始位置时才匹配,没有匹配到返回None
regex.findall(text) # 查看text中所有能够匹配到的模式:[' ', '\t ', ' \t']
regex.search(text) # 返回text中第一个匹配项:match=' '
regex.match(text) # 只在pattern出现在text起始位置时才匹配,没有匹配到返回None
wbing96
发布了24 篇原创文章 · 获赞 6 · 访问量 1151
私信
关注