fixmint
ZH

查找替换里的正则表达式:七个示例入门指南

作者: · · 更新于 2026年11月8日 · 阅读约 4 分钟

正则表达式(regex)是用几个符号写成的匹配模式。在查找替换工具中,打开“正则”开关后,“查找”框会把输入当作模式来读,而不是普通文字,所以句号表示任意一个字符,而不是句号本身。大多数有用的模式只需要几个符号。普通词语查找时请关掉正则,这样每个符号都按字面意思处理。

查找替换一次替换文中所有某个词免费使用

需要用到的符号

符号匹配内容
.除换行符外的任意一个字符
*前面的内容,出现零次或多次
+前面的内容,出现一次或多次
?前面的内容,出现一次或不出现
[ ]方括号中的任意一个字符,例如 [aeiou] 或 [0-9]
\d \w \s一个数字;一个字母、数字或下划线;一个空格、制表符或换行符
( )一个分组,替换框可以用 $1、$2 等重复使用它
^ 和 $整段文本的开头和结尾

大写字母表示取反:\D 是任何非数字字符,\S 是任何非空白字符。

本工具有两点需要注意。第一,\w 只匹配英文字母、数字和下划线。要匹配带重音符号的字母,请使用 \p{L},它能匹配任何字母表中的字母。第二,^ 和 $ 匹配的是整段文本的开头和结尾,而不是每一行的开头和结尾。下面的示例改用模式中的换行符来处理逐行的情况。

分组与 $1

把模式的一部分放进圆括号,工具就会记住这部分匹配到的内容。在替换框中,$1 表示第一个分组,$2 表示第二个分组,$& 表示整个匹配结果。工具自带的常见问题解答给出了一个经典例子:查找填写 (\w+)@(\w+),替换填写 $2 at $1,文本 name@site 就会变成 site at name。分组只在打开“正则”时才生效。关闭时,$1 会按原样输入。

分步构建模式

先写出你要找的确切文字,再用符号替换那些会变化的部分。像 2026-11-04 这样的日期,可以写成 \d{4}-\d{2}-\d{2},其中 {4} 表示前面的内容恰好出现四次。先测试简单的版本,只有当高亮结果显示匹配过多时,才收紧模式。

如果想单独看看某个模式的效果、又不想改动任何内容,正则表达式测试工具可以用示例文本运行模式,并列出每一处匹配。

七个示例

每个示例都要先打开“正则”。工具会在复制之前高亮匹配内容并显示数量,所以请先在文本副本上测试每个示例。

  1. 交换姓和名。 查找 (\w+) (\w+),替换为 $2, $1。"Ada Lovelace" 会变成 "Lovelace, Ada"。如果名字带重音符号,请使用 (\p{L}+) (\p{L}+)。此写法只适用于两个词的名字。
  2. 删除行尾空格。 查找 [ \t]+(?=\r?\n|$),替换框留空。它匹配的是紧挨着换行符或文本末尾的空格或制表符。前瞻断言 (?=...) 用来检查换行符,但不会把它删掉;\r? 则负责处理 Windows 的换行符。修复粘贴的文本中有“逐行修剪”选项,作用相同。
  3. 合并连续空格。 查找 {2,},也就是连续两个或更多的空格,替换为一个空格。两个或更多空格会变成一个。这也会缩小缩进,所以代码请不要使用。
  4. 为每行添加前缀。 查找 (.+),替换为 - $1。换行符之间每段一个或多个字符就是一行,$1 保存的就是这一行的内容。空行会被跳过。请使用一个或多个的写法 .+,而不是零个或多个的写法,因为后者也会匹配换行符之间的空位,导致空行前面多出一个多余的短横线。
  5. 删除空行。 查找 \n\s*(?=\n),替换框留空。匹配的是一个换行符加上它之后的所有空白字符,直到下一个换行符为止,而下一个换行符会被保留。这样就能删除空行,包括只含空格的空行。由于 \s 也能匹配回车符,Windows 换行符同样适用。文本最顶部的空行会保留。删除重复行工具中有“删除空行”选项,一下就能完成同样的操作。
  6. 每行一项。 查找 ,[ ]*,替换为 \n,并勾选替换框中的“替换中读取 \n 和 \t”。"apples, pears, plums" 会变成三行。不勾选的话,\n 会保持为反斜杠加字母 n 两个字符。
  7. 给每个数字加上方括号。 查找 \d+,替换为 [$&]。"Order 42 and 7" 会变成 "Order [42] and [7]"。$& 表示整个匹配,所以不需要分组。

复制前检查

  • 匹配数量和高亮内容显示了模式抓到的内容。如果高亮不对,结果也会出错。
  • 模式有错误时,输入框下方会显示“不是有效的模式”。修正模式后,结果会自动更新。
  • 替换框留空会删除所有匹配内容。输入框里的提示文字会说明这一点。
  • “区分大小写”默认关闭,所以示例会同时匹配大写和小写。需要区分时再打开。
  • 打开“正则”后,若要查找字面上的句号或方括号,请在前面加反斜杠:\. 或 \[。

边界情况

  • 贪婪匹配。 .+ 会尽可能多地匹配。若想在第一个匹配处停止,就加上问号:.+?。对于像 <b>.+</b> 这样的文本,这一点很重要,因为它可能跨越多个标签。
  • 整词匹配。 对于普通单词,关闭“正则”更安全。如工具的常见问题所说,“只匹配整词”选项可以防止 cat 匹配到 category 中。查找替换指南中有更多整词替换的示例。
  • 保留原文。 结果显示在单独的框中,输入内容保持不变。满意后再复制结果。

由 AI 辅助翻译自英文原文。

评论

    还没有评论。快来抢沙发。

    你的评分(可选)

    你的邮箱不会被显示或保存。

    How to Remain Valuable When Intelligence Becomes Cheap 的封面How to Remain Valuable When Intelligence Becomes Cheap

    224页,探讨当AI能完成大部分认知工作时,哪些人类、经济和战略上的优势依然稀缺。

    $3.84在 Gumroad 获取英文阅读