一、常用正则规则
规则 | 含义 |
\d | [0-9],数字 |
\D | [^0-9],除了数字以外任何字符 |
\w | [0-9a-zA-Z_],数字字母下划线 |
\W | [^0-9a-zA-Z_],排除数字字母下划线的任何字符 |
\s | [\t\v\n\r\f],空白符号(包括空格、水平制表符、垂直制表符、换行符号、回车等) |
\S | 非空白符 |
i | 不区分大小写模式 |
g | 全局匹配模式 |
m | 多行匹配模式 |
u | 宽字符模式(多用汉字匹配) |
s | 或略换行符(多行视为一个整体) |
. | 非“\n”(换行符)以外的所有字符 |
[\u4e00-\u9af5] | 匹配汉字 |
^ | 开始 |
$ | 结束 |
\b | 单词边界 |
\B | 非单词边界 |
宽字符相关 | |
/\p{L}/gu | 宽字符标点 |
\p{N}/gu | 宽字符数字 |
/\p{sc=Han}/gu | 汉字 |
原子组相关 | |
(?:\w) | 不记录分组 |
(?<dian>\.) | 原子组别名 |
$符的使用 | |
$`(匹配内容前) $’(匹配内容后) $&(匹配内容) | |
断言 | |
/后盾人(?=img)/、/后盾人(?!img)/ | 前断言 |
(?<=我是后盾人)、(?<!我是后盾人) | 后断言 |
/(?<!.*good.*)人人/ | 全局断言 |
/\d+?/ | 惰性匹配(+后面的?)默认是非惰性的 |
二、常用正则方法
需要转意的符号:点号. 小括号(). 中括号[] 左右斜杠\/ 竖|
函数 | 说明 |
string.matchAll(reg); | 返回迭代器 |
reg.lastIndex | 正则对象的迭代属性 |
reg.exec(string) | 正则对象的匹配方法 |
string.serch(reg); | 类似indexof方法 |
string.replace(reg, serch=> {…}); | |
string.macth(reg); | |