正则表达式速查手册
小维AI总结
HunYuan-Turbos-Latest
思考中···
定义
正则表达式(Regular Expression,简称 regex 或 regexp) 是一种用于匹配字符串中字符模式的工具。它由一系列字符和特殊符号组成,用来描述搜索模式
通过使用正则表达式,你可以执行复杂的字符串操作,如查找、替换、分割等
基本语法元素
普通字符:大多数字符,如字母和数字,在正则表达式中代表它们自己。例如,cat 匹配单词 “cat”
元字符:某些字符具有特殊含义,称为元字符
| 元字符 | 含义 | 示例 |
|---|---|---|
. |
匹配除换行符以外的任意单个字符 | a.c 匹配 abc、aXc |
^ |
匹配字符串的开头 | ^cat 匹配以cat开头 |
$ |
匹配字符串的结尾 | cat$ 匹配以cat结尾 |
* |
匹配前面的字符零次或多次 | ab*c 匹配 ac、abc、abbc |
+ |
匹配前面的字符一次或多次 | ab+c 匹配 abc、abbc |
? |
匹配前面的字符零次或一次 | ab?c 匹配 ac、abc |
{n} |
匹配前面的字符恰好 n 次 | a{3} 匹配 aaa |
{n,} |
匹配前面的字符至少 n 次 | a{2,} 匹配 aa、aaa… |
{n,m} |
匹配前面的字符至少 n 次但不超过 m 次 | a{2,4} 匹配 aa~aaaa |
字符集:用方括号 [] 表示一个字符集合,匹配其中任何一个字符。例如,[aeiou] 匹配任何元音字母
反义字符集:用 [^...] 表示,匹配不在括号内的任意字符。例如,[^0-9] 匹配任何非数字字符
分组和捕获:用圆括号 () 将部分模式组合在一起。例如,(ab)+ 匹配一个或多个 “ab” 组合
选择:用竖线 | 分隔选项,表示"或"的关系。例如,gray|grey 匹配 “gray” 或 “grey”
量词和贪婪模式
- 贪婪模式:默认情况下,量词 (
*,+,?,{n,m}等) 是贪婪的,会尽可能多地匹配字符 - 非贪婪模式:在量词后面加上
?可使其变为非贪婪模式,尽可能少地匹配字符。例如,.*?匹配任意数量的字符直到遇到第一个满足条件的字符
应用场景
- JavaScript:使用
RegExp对象或字面量创建,使用test(),match(),replace(),split()等方法 - 命令行工具:如
grep,sed,awk等支持正则的文本处理工具 - 编程语言:Python 的
re模块,Java 的java.util.regex包等
常用简写
Java中需要 \\(字符串转义),JavaScript不需要
1 | \d 一个数字 |
语法详解
字符集
1 | [] 匹配其中任意一个字符 |
分组与反向引用
1 | (ab)+ 匹配一个或多个"ab"组合 |
选择与分组
1 | (a|b|c) 匹配a、b或c中的一个 |
量词详解
1 | ? 匹配前面的子表达式零次或一次 |
常用正则表达式
1 | ^[0-9]*$ 纯数字 |
评论





