ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] > [公众号:正则表达式](https://mp.weixin.qq.com/s?__biz=MjM5ODYwMjI2MA==&mid=2649749963&idx=1&sn=06ccadf5d062acea106439ccc7a0e9eb&utm_source=tuicool&utm_medium=referral) ## 字符匹配 | 字符 | 说明 | | --- | --- | | \\ | 转义符 | | \\d | \[0-9\]。表示是一位数字。 | | \\D | \[^0-9\]。表示除数字外的任意字符。 | | \\w | \[0-9a-zA-Z\_\]。表示数字、大小写字母和下划线。 | | \\W | \[^0-9a-zA-Z\_\]。非单词字符。 | | \\s | \[\\t\\v\\n\\r\\f\]。表示空白符,包括空格、水平制表符、 垂直制表符、换行符、回车符、换页符。 | | \\S | \[^\\t\\v\\n\\r\\f\]。非空白符。 | | . | \[^\\n\\r\\u2028\\u2029\]。通配符,表示几乎任意字符。 换行符、回车符、行分隔符和段分隔符除外。 | | \\uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 字符。 | | \\f | 匹配一个换页符 (U+000C)。 | | \\n | 匹配一个换行符 (U+000A)。 | | \\r | 匹配一个回车符 (U+000D)。 | | \\t | 匹配一个水平制表符 (U+0009)。 | | \\v | 匹配一个垂直制表符 (U+000B)。 | | \\0 | 匹配 NULL(U+0000)字符, 不要在这后面跟其它小数,因为 \\0是一个 八进制转义序列。 | | \[\\b\] | 匹配一个退格(U+0008)。(不要和\\b 混淆了。) | | \[abc\] | any of a, b, or c | | \[^abc\] | not a, b, or c | | \[a-g\] | character between a & g | ## 量词和分支 | 字符 | 说明 | | --- | --- | | a\* | 0 or more | | a+ | 1 or more | | a? | 0 or 1 | | a{5} | exactly five | | a{2,} | two or more | | a{1,3} | between one & three | | a+? a{2,}? {m,n}? {m,}? ?? +? *? | match as few as possible,惰性匹配,就是尽可能少的匹配 | ## 修饰符 | 字符 | 说明 | | --- | --- | | i | 执行对大小写不敏感的匹配。 | | g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 | | m | 执行多行匹配。 | | u | 开启"Unicode 模式",用来正确处理大于\\uFFFF 的 Unicode 字符。也就是说,会正确处理四个字节的 UTF-16 编码。 | | s | 允许 . 匹配换行符。 | | y | y 修饰符的作用与 g 修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g 修饰符只要剩余位置中存在匹配就可,而 y 修饰符确保匹配必须从剩余的第一个位置开始,这也就是"粘连"的涵义 |