正则表达式简明手册

一、 元字符

字符说明
^一行开始
$一行结束
\b单词的开始或结束
.除换行符外的任意字符
\w单词字符(包括字母、数字、下划线和汉字)
\W任意的非单词字符(包括字母、数字、下划线和汉字)
\s任意的空白字符,如空格、制表符、换行符、中文全角空格等
\S

任意的非空白字符

\d任意的数字
\D任意的非数字字符

二、 字符集合

字符集合说明
[aeiou]aeiou字符集中的任何字符
[^aeiou]aeiou字符集之外的字符
[0-9a-z]字符集合0到9,a到z中的任何字符
[^0-9a-z]字符集合0到9, a到z中的任何字符

三、 限定符

字符说明
{n}重复次数=n次
{n,}重复次数>=n次
{n,m}n<=重复次数<=m
*重复次数>=0
+重复次数>=1
?0<=重复次数<=1
*?尽可能少地使用重复的第一个匹配
+?尽可能少地使用重复但至少使用一次
??使用零次重复(如有可能)或一次重复

四、 分组

分组又称为子表达式,即把一个正则表达式的全部或部分分成一个或多个组。其中,分组使用的字符为“(”和“)”,即左圆括号和右圆括号。分组之后,可以将字符为“(”和“)”之中的表达式看成一个整体来处理。以下正则表达式可以匹配重复出现字符串“abc”一次或两次的字符串。此时,表达式将“abc”看成一个整体来进行重复匹配。
(abc){1,2}

当一个正则表达式被分组之后,每一个组将自动被赋予一个组号,该组号可以代表该组的表达式。
其中,组号的编制规则为:从左到右、以分组的左括号“(”为标志,第一个分组的组号为1,第二个分组的组号为2,以此类推。
可以使用 \数字 的方式来引用分组。如\1,\2


五、贪婪与非贪婪

比如说匹配输入串A: 101000000000100

  1. 使用 1.*1 将会匹配到1010000000001, 匹配方法: 先匹配至输入串A的最后, 然后向前匹配, 直到可以匹配到1, 称之为贪婪匹配。

  2. 使用 1.*?1 将会匹配到101, 匹配方法: *匹配下一个1之前的所有字符, 称之为非贪婪匹配。

所有带有量词的都是非贪婪匹配: .*?.+?.{2,6}? 甚至 .??



china_jeffery CSDN认证博客专家 C/C++ Qt Node.js
持续学习者;
擅长开发开源组件及相关工具;
长期致力于应用各种IT新技术提升生产效率和解决实际问题;
china_jeffery@163#com
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值