关于re的补充知识

目录

    • 正则表达式
    • 常用的正则表达式操作符
    • 对re库的常见操作
      • 创建对象模式匹配
      • 不创建对象模式的匹配
      • findall()方法
      • 替换sub
    • 小Taps

正则表达式

字符串模式,判断字符串是否满足某一规则。

常用的正则表达式操作符

. 表示任一字符
[ ] 表示括号中范围的任一字符
[^ ] 表示除了括号中范围的任一字符
*表示0个或多个字符
+表示1个或多个字符
?表示0个或多个字符
|表示从左右表达式中任选一个
{m} 表示前边的字符会出现m次
{m,n} 表示前边的字符会出现m次到n次
^ 表示以什么字符串开头
$ 表示以什么字符串结尾
() 表示分组,括号中只能用|操作符
\d 表示数字
\w 表示单词字符,包括A-Z,a-z,0-9和下划线

对re库的常见操作

创建对象模式匹配

基本思路就是通过compile()将匹配规则赋给一个变量,通过变量的search()方法进行判断,如果匹配的上会返回匹配到的下标,如果匹配不上会返回None。
只会返回第一个匹配上的下标

import re
pat = re.compile("AA")  #此处的AA是正则表达式,用来验证其他的字符串
m = pat.search("ABC")  #search里的字符串时被校验的内容
print(m)  #None匹配不上
m = pat.search("ABCAA")
print(m)  #匹配得上会返回下标
m = pat.search("ABCAADDCCAA")
print(m)  #只返回第一次匹配的上的下标

不创建对象模式的匹配

基本思路就是直接通过re.search()进行匹配,search括号中包括两个内容,第一个字符串是规则,第二个字符串是要被校验的内容。同样会返回匹配到的下标。

import re
m = re.search("asd","Aasd")  #前边的是规则(模板),后边的是被校验的对象
print(m)  #

findall()方法

findall()括号中包含两个内容,第一个是规则,第二个是要被校验的内容,在返回的时候,会返回所有匹配到的内容,以列表的形式进行存储。

import re
print(re.findall("a","ASDaDFGAa"))  #前边是规则后边是被校验的内容 输出一个列表包含所有符合条件的内容

查找字符串中的大写字符

import re
print(re.findall("[A-Z]","ASDaDFGAa"))  #查找大写字母

查找大写字母后边可以跟一个或多个字符。

import re
print(re.findall("[A-Z]+","ASDaDFGAa"))  #包含至少一个大写字母,后边可以跟多个

替换sub

sub()括号中包含三个内容,表示将第三个内容中的第一个内容用第二个内容替换。

import re
print(re.sub("a","A","abcdcasd"))  #把字符串中的a用A替换

小Taps

在写字符串的时候,最好在前边加上r,避免转义字符带来的麻烦

m = r"\abdnk\'"
print(m)  #\abdnk\' 不会转义

你可能感兴趣的:(正则表达式,前端,后端)