正则表达式符号汇总

正则表达式

字符类

字符含义举例
.匹配任意一个字符abc. -> abcdabc6
[]匹配[]中的任意一个字符[abc]d -> adbccd
-[]内表示字符范围[0-9a-fA-F]-> 一位16进制数
^位于[]内的开头,匹配除括号以外的任意一个字符[^xy]->匹配除x y外的任意一个字符
[[:xxx:]]grep工具预定义的一些命名字符类[[:alpha::]] -> 匹配一个字母 [[::dight::]] -> 匹配一个数字

数量限定符

字符含义举例
?紧跟在其前面的单元应匹配零次或一次[0-9]?\.-> 匹配0.0、1.7、.6等
+紧跟在其前面的单元应匹配一次或多次[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]\.[a-zA-Z0-9_.-]+ -> 匹配email地址
*紧跟在其前面的单元应匹配零次或多次[0-9][0-9]* -> 匹配至少一位数字 ,等价于[0-9]+
{N}紧跟在其前面的单元应精确匹配N次[1-9][0-9]{2} -> 匹配从100到999的三位整数
{N,}紧跟在其前面的单元应匹配至少N次[1-9][0-9]{2,} -> 匹配大于等于三位数的整数
{,M}紧跟在其前面的单元应匹配至多M次[0-9]{,1} -> 最多匹配0-9之间的一个整数,相当于[0-9]?
{N,M}紧跟在其前面的单元应匹配至少N次,至多M次[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1.3}\.[0-9]{1,3} -> 匹配点分十进制IP地址

位置限定符

字符含义举例
^匹配行首的位置^Content -> 匹配位于一行开头的Content
$匹配行末的位置;$ -> 匹配位于一行结束的; ^$ -> 匹配空行
\<匹配单词开头的位置\<th -> 匹配 th...
\>匹配单词结尾的位置p\> -> 匹配 ...p
\b匹配单词开头或结尾的位置\bat -> 匹配at......at
\B匹配非单词开头或结尾的位置\Bat -> 匹配...at...

特殊符号

字符含义举例
\转义字符,普通字符转义为特殊字符,特殊字转义为普通字符普通字符<写成\<表示开头位置
()将正则表达式的一部分括起来组成一个单元,可以对整个单元使用数量限定符([0-9]{1,3}\.){3}[0-9]{1,3} -> 匹配正则表达式
``连接两个子表达式,表达或的关系

其他普通字符集及其替换

符号替换正则匹配
\d[0-9]数字字符
\D[^0-9]非数字组合
\w[a-zA-Z0-9_]数字字母下划线
\W[^\w]非数字字母下划线
\s[\r\t\n\f]表格,换行等空白区域
\S[^\s]非空白区域

贪婪模式与非贪婪模式

  1. 贪婪模式:正则表达式匹配时,会尽量多的匹配符合条件的内容
  2. 非贪婪模式:正则表达式匹配时,会尽量少的匹配符合条件的内容,也就是说,一旦发现匹配符合要求,立马就匹配成功,而不会继续匹配下去(除非有g,开启下一组匹配)

零宽断言

  1. 所谓断言,是用来声明一个应该为真的事实。在正则表达式中,只有当断言为真时才会继续进行匹配。

  2. 零宽断言:像用于查找某些内容之前或者之后的东西,其中一些特殊字符如“\b、^、$”等用于指定一个位置,这个位置应满足一定的条件。

  3. 分类

    1. 零宽度正预测先行断言(?=exp)

      它断言自身出现的位置之后能匹配的表达式exp。如:\b\w+(?=ing\b),表示匹配以ing结尾的单词的前面的部分(除ing以外的部分)。当我们要查找I'm singing while you're dancing.时,它会匹配singdanc

    2. 零宽度正回顾后发断言(?>=exp)

      它断言自身出现的位置的前面能匹配的表达式exp。如:(?<=\bre)\w+\b会匹配以re开头的单词的后半部分(除er以外的部分),例如:在查找reading a book时,它匹配ading

Python关于正则表达式的使用

re库主要功能函数

函数说明
re.search()从字符串中搜索匹配正则表达式的第一个位置,返回match对象
re.match()从一个字符串的开始位置起匹配正则表达式,返回match对象
re.find_all()搜索字符串,以列表形式返回全部能匹配的子串
re.split()将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
re.finditer()搜索字符串,返回一个匹配结果的迭代类型,每一个迭代类型是一个match对象
re.sub()在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

控制匹配模式

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位OR(|)来指定。如:re.lre.M被设置为l或M标志

修饰符描述
re.l使匹配对大小写不敏感
re.L做本地化识别匹配(local-aware)匹配
re.M多行匹配,影响^$
re.S使.匹配包括换行在内的所有字符
re.U根据Unicode字符集解析字符。这个标志影响:\w\W\b\B
re.X该标志通过给你更灵活的格式以便你将正则表达式写的更易于理解
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值