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; // 全局匹配 + 忽略大小写