Content
正则表达式(JavaScript 描述)
正则规则
最基本的
/123/
代表想要匹配一个含有 “123” 这个子串的字符串。
边界/位置符(修饰整句)
提示字符所处位置
符号 | 解释 |
---|---|
^ | 指定开头的边界 |
& | 指定结尾的边界 |
例如:
/^123/; // 匹配以 123 开头的字符串
/123$/; // 匹配以 123 结尾的字符串
/^123$/; // 匹配以 123 开头且结尾的字符串,即精确匹配
字符集合(匹配内容)
匹配一系列字符
符号 | 解释 |
---|---|
[ABC] | 字符集合 {a, b, c} |
[^123] | 字符集合在全集中的补集 |
[a-z] | 字符集合 {a, b, …, z} |
[1-9A-Za-z] | 字符集合的组合 |
-
注意,字符的排列顺序:
数字 → 大写 → 小写
[1-9A-Za-z]
-
任意字符均可:
—、-、_、/、\等等
预定义类(匹配内容)
预先定义好的匹配
符号 | 解释 |
---|---|
. | 匹配除 \n 外的任何字符 |
\s | 匹配空白字符 |
\S | 匹配**非**空字符 |
\d | 匹配一个数字字符 |
\D | 匹配一个**非**数字字符 |
\w | 匹配任意的字母、数字和下划线 |
\W | 匹配任意**非**字母、数字和下划线 |
\b | 匹配单词边界 |
\B | 匹配**非**单词边界 |
量词符(修饰前边紧跟的字符)
修饰前边字符的重复次数
符号 | 解释 |
---|---|
* | (>= 0)前边的字符可以重复 0 次或多次 |
+ | (>= 1)前边的字符可以重复 1 次或多次 |
? | (0 <= <= 1)前边的字符可以重复 0 次或 1 次 |
{n} | (= n)指定前边的字符可以重复 n 次 |
{n,} | (x >= n)指定前边的字符可以重复 >= n 次 |
{n, m} | (n <= <= m)前边的字符可以重复 n <= x <= m 次 |
模式符(优先级)
作为一个整体
符号 | 解释 |
---|---|
() | 内部包含的表达式作为一个整体 |
逻辑符(逻辑)
表示或
符号 | 解释 |
---|---|
| | 表示逻辑或 |
创建
获得一个正则表达式对象。
字面量隐式创建:
let regexp = /.../;
显式创建:
let regexp = new RegExp(/.../);
使用
测试匹配:
regexp.test(str);
替换:
regexp.replace();
参数(修饰符):
/.../g; // 全局匹配
/,,,/i; // 忽略大小写
// 可以连着写
/.../gi; // 全局匹配 + 忽略大小写