JS正则表达式村规
JS正则表达式
由于各大平台都有正则表达式, 但是使用风格各有村规, 所以特地的要学习一下最普遍, 常用的 javascript 的正则表达式的使用方法
一个正则表达式由包含在斜杠内的模式组成:
var re = /ab+c/;
类型
断言
^$ | 开头结尾 |
\b | 单词边界(字母和空格之间) |
\B | 非单词边界 |
x(?=y) | 先行断言, 匹配的是x |
x(?!y) | 先行否定断言 |
(?<=y)x | 后行断言 |
(?<!y)x | 后行否定断言 |
字符
\d | 数字, [0-9] |
\D | 反,[^0-9] |
\w | 字母数字下划线,[A-Za-z0-9_] |
\W | 反 |
\s | 单个空白字符->空格,制表符,换页符,换行符等空格[\f\n\r\t\v\u0020\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] |
\S | 反 |
\t | tab |
\r | 回车 |
\n | 换行 |
\v | 垂直tab(? |
[\b] | 退格键 |
\0 | NUL字符 |
\cX | 控制字符, X为A-Z中的一个字母, U+0001-U+001F |
\xhh | 代码hh十六进制对应的字符 |
\uhhhh | 值hhhh对应的UTF-16代码单元 |
\u{hhhh}, \u{hhhhh} | U+hhhh/U+hhhhh |
\p{UnicodeProperty} | Unicode字符属性(表情符, 日文, 汉字) |
x|y | x或y |
组和范围
[] | 最基础的, 不用说 |
(x) | 捕获组 |
\n | n为正整数, 第n个括号匹配的子串反向引用 |
(?<Name>x) | 将x捕获到组<name>中 |
(?:x) | 非捕获组, 匹配但是不作为结果返回 |
量词
* | 0+ |
+ | 1+ |
? | 0/1 |
{n,} | n+ |
{n, m} | n-m |
*?, +?, ??, {}? | 反贪婪 |
Unicode属性转义
主要是不同语言的匹配, 不需要详细展开
模式
g | 全局 |
i | 不区分大小写 |
m | 多行搜索 |
s | 允许.匹配换行符 |
u | 使用unicode码的模式进行匹配 |
y | 使用粘性搜索 |
使用
不写了, 主要也不是在 js 里面用啊, 只要知道 js 的 regex 村规就行了
2023/10/25参考: mdn-正则表达式