概念:在代码中常简写为regex、regexp或RE,使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。(搜素模式可以用于文本搜索和文本替换)
语法:/正则表达式主体/修饰符(可选)
创建方式
- 直接量语法创建:直接量定义为包含在一对斜杠(/)之间的字符
- 构造函数创建:通过 RegExp() 构建函数可以实现动态创建正则表达式。
关于正则表达式的一些知识我们可以从以下几个方面来了解:
直接量字符:所有字母和数字都是按照字面含义进行匹配的,其他非字母的字符需要通过 \ 作为前缀进行转移。注意,它们都是精确匹配,每一个字符都只能匹配一个字符。
字符类:不想匹配某一个特定的字符而是想匹配某一类字符的情况下。
重复:当一个模式需要被多次匹配的时候。
选择:用| 字符分隔可供选择的模式,匹配时会尝试从左至右匹配每一个分组,直到发现匹配项。
引用:带圆括号的表达式的另一个用途是允许在同一个正则表达式的后面引用前面的子表达式。
分组:带 () 的可以把单独的项组合成子表达式以便可以像一个独立的单元用 |、*、+ 或者 ? 对单元内的项进行处理。
锚元素:不用来匹配实际的字符,而是匹配指定的位置。(任何正则表达式都可以作为锚点条件)
修饰符
- i 执行不区分大小写匹配
- g 全局匹配
- m 多行匹配模式
- y sticky 修饰符
- s 表示点 . ,可以表示任意字符,不设置的话,四个字节的 UTF-16 字符和行终止符不能用 . 表示
- u 开启 Unicode 模式,用于正确处理大于 \uFFFF 的 Unicode 字符