关于JS正则的解释

萝らか妹 提交于 2020-01-29 04:35:05

正则

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)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!