type
Post
status
Published
date
Jan 21, 2026
slug
regex
summary
正则表达式是一种从左到右匹配主体字符串的模式。
tags
RegEx
category
速查
icon
fas fa-terminal
password

元字符 (Meta Characters)

. —— 匹配除换行符以外的任意单个字符
\s —— 匹配任意空白字符(空格、Tab、换行)。
\d —— 匹配任意数字。等价于 [0-9]
\w —— 匹配任意单词字符(字母、数字、下划线)。等价于 [a-zA-Z0-9_]
 
PS: 元字符对应的大写字符表示反义,比如\W 表示匹配非单词字符

字符集 (Character Sets)

[abc] —— 匹配方括号内的任意一个字符。
  • 示例:[bcr]at 可以匹配 "bat", "cat", "rat"。
[^abc] —— 匹配除了方括号内字符以外的任意字符。
  • 示例:[^0-9] 匹配任何非数字字符。
[a-z] —— 匹配范围内的字符。
  • 示例:[a-f] 匹配 a 到 f 之间的任意字母。

量词 (Quantifiers)

* —— 重复 0 次或更多次
  • 示例:a* 匹配 "", "a", "aa", "aaa"。
+ —— 重复 1 次或更多次
  • 示例:a+ 匹配 "a", "aa"(但不匹配空字符串)。
? —— 重复 0 次或 1 次(即“可选”)。
  • 示例:colou?r 匹配 "color" 和 "colour"。
{n} —— 重复 n 次
{n,m} —— 重复 n 到 m 次。上下限可以仅提供一个
 
 
 
 
? (惰性模式) —— 放在量词后面,表示尽可能少地匹配。
  • 示例:
    • .*atThe fat cat sat on the mat
      .*?atThe fat cat sat on the mat。
       

分组 (Grouping)

(xyz) —— 捕获组。
  • xyz 作为一个整体进行匹配,并保存匹配结果供后续引用。
| —— 逻辑或 (OR)。
  • 示例:a|b 匹配 "a" 或 "b"。
  • 常与分组配合:(gr(a|e)y) 匹配 "gray" 或 "grey"。

查找替换 (Replacement)

$n —— 引用第 n 个捕获组。
  • 这里的 n 对应第 n 对括号 ()
  • 示例:查找 (\d{4})-(\d{2}),替换为 $2/$1,可将 "2025-01" 变为 "01/2025"。
$0 —— 引用完整匹配的文本。
  • 示例:查找 \d+,替换为 "$0",可给所有数字加上双引号。

锚点 (Anchors)

^ —— 匹配字符串的开始
$ —— 匹配字符串的结束
\b —— 匹配单词边界
  • 指单词与空格/标点之间的位置。
  • 示例:\bcat\b 匹配 "cat",但不匹配 "category"。