正则
http://regexper.com
修饰符
g: 全局匹配
i: 匹配大小写
m 多行收缩
元字符
正则表达式有两种基本字符 元字符 原义文本字符
原义概念:表示代表本来文本的字符;
元字符:再正则表达式中有特殊意义的字符
.* + ? $ ^ | \ () {} [] \n \d \w \r\ Q \f \b \cX…
[] 或 字符类 将一堆字符放在一个字符类中。匹配结果为一个字符,字符长度由两字决定
{} 量词 作用:决定匹配字符的长度。每个正则字符只匹配一个字符;量词决定结果字符长度0-n。
()
.
+
*
?
^
$
\b
\d
\w
\n
\r
\f
字符类[]
一般情况下,一个字符对应一个字符串
特殊:需要配【某类】字符
1:使用[]来构建简单的类
2: 所谓的类是指符合某些特性的对象;一个泛指;而不是特定某个字符
例如[abc] 匹配 a b c 中其中一类就可以
字符类取反 [^]
1:使用 ^ 创建反向类 必须在[^] 内
2:不属于某类
[^abc] 非 a b c
范围类
1:[a-z] 匹配 a-z 任意字符
闭意区间表示包含a z 本身
2:在 [] 组成的类可以连写 [a-zA-Z]
预定义类
作用:匹配常见的字符
。 [^\r\n] 任意字符 除了回车和换行的
\d [0-9]
\s [’ ‘]
\S [^’ ']
\w [a-zA-Z0-9_]
边界匹配的字符
^ 开头
$ 结尾
\b 单词边界
\B 非单词边界
量词
量词:是匹配一个字符的长度多少?
匹配一个连续出现20次的字符;字符长度为20
? 出现0次或者1次
- 一次或者多次
- 出现0次或者多次
{n} 一个正则字符出现n次
{n,m} 出现n到m 次
{n,} 至少出现n 次
贪婪模式 非贪婪模式
\d{3,6} 贪婪模式 尽可能多的匹配
\d{3,6}? 非贪婪模式;尽可能少的匹配
分组:
需求:撇需yyc 连续3次出现次数
yyc{3} c3次
(yyc){3}
1:小写英文字母数字练习出现3次、
或
多个分支走任意一个分支都可以
| 或
(yyc|wjr) yyc或者wjr
反项引用
$1$2$3 捕获分组中的内容
忽略分组
不想捕获某个分组时候,在分前后面加上?:就可以了
例如:
(?:yyc) 不会捕获到yyc
前zan瞻
正则表达式从头到尾的解析 文本尾部叫做【前】 文本头部叫做后
1:前瞻就是正则表达式匹配到规则时候;向前价查是否符合断言,后顾/后瞻方向相反
2:js不支持后顾
3:符合和不符合特定断言叫做肯定/正向匹配;和否定/负向匹配
正向匹配: 既要符合正则也要符合断言 exp(?=assert); exp规则部分(?=assert)断言部分
- 例如 \w(?=\d) 匹配到\w 后 还要往后看看 是不是数字
负向匹配 exp(?!assert)
来源:CSDN
作者:提拉米苏-杨
链接:https://blog.csdn.net/tlmis/article/details/103737608