注意:加粗样式正则的核心是:要么匹配位置,要么匹配字符
一、匹配位置
模式 | 重要说明 |
---|---|
^ | 匹配开头的位置,当正则有修饰符 m 时(多行文本),表示匹配行开头位置。 |
$ | 匹配结尾的位置,当正则有修饰符 m 时(多行文本),表示匹配行结尾位置。 |
\b | 匹配单词边界,即匹配上面示例中的 i、love、U 前后的位置 |
\B | 匹配非单词边界,与 \b 相反,即匹配上面示例中的 o、v、e 前后的位置 |
(?=表达式) | 正向先行断言,指在某个位置的右侧必须能匹配表达式。 例如: 给定字符串我爱你 我爱他 我爱 爱你 我和你, 匹配右边是“你”的位置。正则可以这么写: /(?=你)/g 如果非要加上“爱”,/爱(?=你)/g,就会匹配出 |
(?!表达式) | 反向先行断言,指在某个位置的右侧不能匹配表达式。与 (?=表达式)正好相反 |
(?<=表达式) | 正向后行断言,指在某个位置的左侧必须能匹配表达式。 注意: 先行断言和后行断言只有一个区别, 即先行断言从左往右看,后行断言从右往左看。 |
(?<!表达式) | 反向后行断言,指在某个位置的左侧不能匹配表达式。 |
二、匹配字符
字符
字符组
量词
括号的作用
正则表达式相关 API
Javascript 中可以通过以下两种方式写正则:
- 正则表达式字面量
- 通过构造函数 RegExp 的实例
例如,创建一个正则用于精确匹配字符串 ‘test’。
let regExp = /test/
let regExp = new RegExp('test')
// 或者
let regExp = new RegExp(/test/)
在正则上添加修饰符
RegExp 相关实例方法
new RegExp(/love*/).test('I love you, I love him')
// true
new RegExp(/love*/).exec('I love you, I love him')
// ['love', index: 2, input: 'I love you, I love hime', groups: undefined]
RegExp 静态属性
String 相关实例方法
groups: 一个命名捕获组对象,其键是捕获组名称,值是捕获组,如果未定义命名捕获组,则为 undefined。有关详细信息,请参阅组和范围。
index: 匹配的结果的开始位置
input: 搜索的字符串。|| replace | 对目标字符串进行替换操作。正则是其第一个参数。返回替换后的字符串。
replace 第二个参数中的特殊字符
replace 第二个参数为函数
你可以指定一个函数作为第二个参数。在这种情况下,当匹配执行后,该函数就会执行。 函数的返回值作为替换字符串。 (注意:上面提到的特殊替换参数在这里不能被使用。) 另外要注意的是,如果第一个参数是正则表达式,并且其为全局匹配模式,那么这个方法将被多次调用,每次匹配都会被调用。
链接:https://juejin.cn/post/7153800580077453326
正则测试工具
https://c.runoob.com/front-end/854/