说明
- 最近的业务正则较多,特此回顾一下基本用法
- 适用于 正则表达式的有经验的朋友。
匹配任意字符
let reg = /a../g;
reg.test('aqw');
复制代码
匹配字母和数字
let reg = /\w/g;
reg.test('1231qwesadFSD');
let regNumber = /\d/g;
regNumber.test('31241320');
复制代码
集合和匹配多个
let bad = /yo/g;
let reg = /[Yy][Oo]+/g;
reg.test('Yo');
reg.test('yO');
复制代码
单词边界
let reg = /yo{1,4}\b/;
reg.test('yo');
reg.test('yoo');
reg.test('yooo');
reg.test('yooooooooooo');
复制代码
分组
let reg = /(ad)..(cd)/g;
'adqwcd'.replace(reg,'$1 123 -- $2')
复制代码
匹配不捕获
- 这样的话第一组就会 undefined,第二组变成第一组。只匹配不捕获分组
let reg = /(?:ad)..(cd)/g;
'adqwcd'.replace(reg,'$1 123 -- $2')
复制代码
正向预查(匹配右边)和反向预查(匹配左边)
let reg = /\d+(?=元)/
let reg = /(?<=¥|\d)\d+/
复制代码
速查表
符号 | 描述 | 例子 | 能匹配 | 不能匹配 |
---|
^ | 行首或字符串开始 | ^yo | yo | ayo |
$ | 行末或字符串结束 | yo$ | yo | yop |
\b | 单词边界 | \byo\b | mu yo mu | muyomu |
\B | 非单词边界 | \Byo\B | muyomu | mu yo mu |
符号 | 描述 | 例子 | 能匹配 | 不能匹配 |
---|
(?=xxx) | 正向肯定预查,从任何匹配xxx的字符串开始处匹配查找字符串 | yo(?=o) | yoo | yo |
(?!xxx) | 正向否定预查,从任何不匹配pattern的字符串开始处匹配查找字符串 | yo(?!o) | yo | yoo |
(?<=xxx) | 反向肯定预查,与正向肯定预查类拟,只是方向相反 | (?<=y)o | yo | yoo |
(?<!xxx) | 反向否定预查,与正向否定预查类拟,只是方向相反 | (?<!goo)d | mood | good |
符号 | 描述 | 例子 | 能匹配 | 不能匹配 |
---|
[ ] | 字符集合 | [ace] | a, c, e | d |
[ - ] | 字符范围 | [a-c] | a, b, c | d |
[^ ] | 不包含的字符集合 | [^abc] | d, e | a, b, c |
. | 匹配除断行外的任何字符 | yo. | yoo, yop, yoh | yo |
\s | 空白字符,等于[\n\r\f\t ] | la\sla | la la | lala |
\S | 非空白字符,等于[^\n\r\f\t] | la\sla | lala | la la |
\d | 数字 | \d{2} | 23 | 1a |
\D | 非数字 | \D{3} | yoo, abc | yo1 |
\w | 单词,等于[a-z-A-Z0-9_] | \w{4} | v123 | v12.3 |
\W | 非单词,等于[^a-z-A-Z0-9_] | .$%? | .$%? | .ab? |
特殊字符 | 描述 |
---|
\n | 断行 |
\r | 回车符 |
\t | 制表符 |
\v | 垂直制表符 |
\f | 换页 |
[\b] | 退格 |
符号 | 描述 | 例子 | 能匹配 | 不能匹配 |
---|
| | 或,其一 | a|b | a, b | c |
(xxx) | 匹配xxx并获取这一匹配 | yo(o|p) | yoo 或 yop | yoh |
(?:xxx) | 匹配xxx但不获取这一匹配 | y(?:o) | yo | ya |
+ | 重复1次或多次 | yo+ | yo, yooo | y |
* | 重复0次或多次 | yo* | y, yoo | yop |
? | 出现0次或1次 | yo? | y, yo | ye |
?? | ?的懒惰模式,尽可能少匹配 | yoo?? | yo | yoo |
+? | +的懒惰模式 | yo+? | yo | yoo |
*? | *的懒惰模式 | yo*? | y | yo |
{n} | 重复n次 | yo{2} | yoo | yooo |
{n,m} | 重复n到m次 | yo{1, 3} | yo,yooo | yoooo |
{n,} | 重复至少n次 | yo{2,} | yoo, yooo | yo |