返回
JS 正则表达式速查手册
前端
2023-10-14 17:42:28
作为一名开发人员,正则表达式(Regex)是必备技能之一。在本文中,我们将深入探讨 JavaScript 中最常用的正则表达式,为你提供一份易于理解且可随时参考的速查手册。
字符匹配
表达式 | 示例 | |
---|---|---|
. |
匹配任何字符 | "." 匹配 "a" 或 "@" |
[abc] |
匹配方括号内的字符 | "[abc]" 匹配 "a"、"b" 或 "c" |
[^abc] |
匹配不在方括号内的字符 | "[^abc]" 匹配除 "a"、"b" 和 "c" 以外的字符 |
\d |
匹配数字 | "\d" 匹配 "1" 或 "7" |
\w |
匹配单词字符(字母、数字、下划线) | "\w" 匹配 "a" 或 "5" |
\s |
匹配空白字符(空格、制表符、换行符) | "\s" 匹配 " " 或 "\n" |
字符类
表达式 | 示例 | |
---|---|---|
\b |
匹配单词边界 | "\bword\b" 匹配 "word",但不匹配 "words" 或 "keyword" |
\B |
匹配非单词边界 | "\Bword\B" 匹配 "word" 中的 "wo",但不匹配整个 "word" |
^ |
匹配字符串开头 | "^word" 匹配以 "word" 开头的字符串 |
$ |
匹配字符串结尾 | "word$" 匹配以 "word" 结尾的字符串 |
分组
表达式 | 描述 | 示例 |
---|---|---|
() |
分组表达式 | `"(a |
` | ` | 逻辑 OR |
? |
可选匹配 | "a?" 匹配 "a" 或不匹配 |
* |
零次或多次匹配 | "a*" 匹配 "a" 零次或多次 |
+ |
一次或多次匹配 | "a+" 匹配 "a" 一次或多次 |
匹配限定符
表达式 | 描述 | 示例 |
---|---|---|
? |
零次或一次匹配 | "a?" 匹配 "a" 或不匹配 |
* |
零次或多次匹配 | "a*" 匹配 "a" 零次或多次 |
+ |
一次或多次匹配 | "a+" 匹配 "a" 一次或多次 |
{n} |
匹配 n 次 | "a{3}" 匹配连续出现 3 次的 "a" |
{n,} |
匹配至少 n 次 | "a{3,} 匹配连续出现至少 3 次的 "a" |
{n,m} |
匹配 n 到 m 次 | "a{3,5} 匹配连续出现 3 到 5 次的 "a" |
通配符
表达式 | 描述 | 示例 |
---|---|---|
. |
匹配换行符 | ".\n" 匹配 "a\n" |
^ |
匹配字符串开头 | "^word" 匹配以 "word" 开头的字符串 |
$ |
匹配字符串结尾 | "word$" 匹配以 "word" 结尾的字符串 |
反向引用
表达式 | 描述 | 示例 |
---|---|---|
\1 |
匹配第一个捕获组 | "(a)\1" 匹配 "aa" |
\2 |
匹配第二个捕获组 | "(a)(b)\2" 匹配 "abb" |
\n |
匹配第 n 个捕获组 | "(a)(b)(c)\3" 匹配 "acc" |
贪婪匹配与非贪婪匹配
- 贪婪匹配:尽可能匹配最多的字符。
- 非贪婪匹配:尽可能匹配最少的字符。
表达式 | 描述 | 示例 |
---|---|---|
.* |
贪婪匹配任何字符,直到行尾 | ".*" 匹配 "abc\ndef" 中的 "abc" |
.*? |
非贪婪匹配任何字符,直到行尾 | ".*? 匹配 "abc\ndef" 中的 "abc" |
结语
这份 JavaScript 正则表达式速查手册为你提供了最全面的正则表达式参考,让你能够轻松应对日常开发任务。掌握这些概念和技巧,你将提升代码可读性、提高效率,并解决各种字符串匹配和处理难题。