三人行,必有我师
这里记录一些我所不知道,或者刚刚学到的东西.
参考目录:
正则 \b 与 \B
- \b 单词边界
- \B 非单词边界 例如
/\ba/.test('a') === true
/\ba/.test('c a') === true
...
\B则相反
正则(?:xxx) (?=xxx) (?!xxx) (?<=xxx) (?!<=xxx)
-
(?:xxx) 表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来
-
(?=xxx) 正向肯定预查(look ahead positive assert),匹配pattern前面的位置。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
-
(?!xxx) 正向否定预查(negative assert),在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
-
(?<=pattern) 反向(look behind)肯定预查,与正向肯定预查类似,只是方向相反。
简单说,以(?<=pattern)xxx为例,就是捕获以pattern开头的内容xxx。
-
(?!<=pattern) 简单说,以(?<!pattern)xxx为例,就是捕获不以pattern开头的内容xxx。