正则表达式
正则表达式的模式可以包括以下内容:
-
字面值字符:例如字母、数字、空格等,可以直接匹配它们自身。
-
特殊字符:例如点号 .、星号 *、加号 +、问号 ? 等,它们具有特殊的含义和功能。
-
字符类:用方括号 [ ] 包围的字符集合,用于匹配方括号内的任意一个字符。
-
元字符:例如 \d、\w、\s 等,用于匹配特定类型的字符,如数字、字母、空白字符等。
-
量词:例如 {n}、{n,}、{n,m} 等,用于指定匹配的次数或范围。
-
边界符号:例如 ^、$、\b、\B 等,用于匹配字符串的开头、结尾或单词边界位置。
模式 | 描述 |
^ | 匹配字符串的开头。 |
$ | 匹配字符串的末尾。 |
. | 匹配除了换行符(\n 、\r) 之外任意单个字符。 |
[ ] | 匹配括号内的任意一个字符, 例如,[abc] 匹配字符 "a"、"b" 或 "c"。 |
[^ ] | 匹配除了括号内的字符以外的任意一个字符, 例如,[^abc] 匹配除了字符 "a"、"b" 或 "c" 以外的任意字符。 |
* | 匹配前面的模式零次或多次。 |
+ | 匹配前面的模式一次或多次。 |
? | 匹配前面的模式零次或一次。 |
{n} | 匹配前面的模式恰好 n 次。 |
{n,} |
匹配前面的模式至少 n 次。例如,"o{2,}"不能匹配"Bob"中的"o",但能匹配"foooood"中的所有o,"o{1,}"等价于"o+","o{0,}"则等价于"o*"。 |
{n, m} | 匹配前面的模式至少 n 次且不超过 m 次。 |
a|b | 匹配a或b, 用于指定多个模式的选择。 |
( ) | 匹配括号内的表达式,用于分组和捕获子表达式。 |
(?: ) | 与 ( )类似, 用于分组但不捕获子表达式。 |
(?= ) | 正向肯定预查,exp1(?=exp2):查找 exp2 前面的 exp1。 |
(?<= ) | 反向肯定预查,(?<=exp2)exp1:查找 exp2 后面的 exp1。 |
(?! ) | 正向否定预查,exp1(?!exp2):查找后面不是 exp2 的 exp1。 |
(?<! ) | 反向否定预查,(?<!exp2)exp1:查找前面不是 exp2 的 exp1。 |
\ | 转义字符,用于匹配特殊字符本身。 |
\cx |
匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 |
\f | 匹配一个换页符。等价于 \x0c 和 \cL。 |
\n | 匹配一个换行符。等价于 \x0a 和 \cJ。 |
\r | 匹配一个回车符。等价于 \x0d 和 \cM。 |
\t | 匹配一个制表符。等价于 \x09 和 \cI。 |
\v | 匹配一个垂直制表符。等价于 \x0b 和 \cK。 |
\s | 匹配任意空白字符,包括空格、换行符等,等价于 [ \f\n\r\t\v]。 注意 Unicode 正则表达式会匹配全角空格符。 |
\S | 匹配任意非空字符,等价于 [^\f\n\r\t\v]。 |
\w | 匹配数字字母下划线,等价于'[A-Za-z0-9_]'。 |
\W | 匹配非数字字母下划线,等价于 '[^A-Za-z0-9_]'。 |
\d | 匹配任意数字,等价于 [0-9] |
\D | 匹配任意非数字,等价于 [^0-9]。 |
\A | 匹配字符串开始 |
\z | 匹配字符串结束 |
\Z | 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。 |
\G | 匹配最后匹配完成的位置。 |
\b | 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 |
\B | 匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现