/
/
常用规则库:
请更换为您的测试文本。 例如:发送反馈至开发信箱 contact@ 或支援信箱 support@example.co.uk 获取更多帮助。

匹配结果Match: 1

Match 1Index: 40 - 61
Full Match
support@example.co.uk

为什么选择 火火小工具 正则表达式在线测试工具?

1. 实时色彩高亮与分组捕获

键入即出匹配结果,支持多组捕获(Group 1, 2...)精准提取与文本实时叠层高亮。

2. 丰富的常用规则模板库

内置邮箱、手机号、身份证、IPv4、中文、网址等数十种工程高频正则,一键套用调试。

3. 多语言代码生成与替换

支持 JavaScript、Python、Go、Java 多语言代码片段一键生成与 $1/$2 捕获组正则替换。

4. 100% 本地运算与私密安全

所有正则运算均在浏览器端本地完成,零服务器传输,敏感业务代码测试无泄露风险。

在线正则表达式语法速查表

正则表达式(REGULAR EXPRESSION,简称 REGEX/REGEXP)是计算机科学中的一个强力工具,通过定义一种“字符模式”来快速查找、匹配和替换文本。作为一款专业的正则表达式在线测试工具,掌握其语法能让您的正则测试效率呈指数级上升。无论是使用在线正则表达式工具剥离关键数据还是进行表单验证,熟练运用正则在线测试都是开发者的基本功。

语法 (PATTERN)描述 (DESCRIPTION)示例 (EXAMPLE)
字符与缩写类 (CHARACTER CLASSES)
.匹配除换行符以外的任何单个字符。a.c 匹配 "abc", "a1c"
\w匹配任何字母数字字符和下划线 (`[a-zA-Z0-9_]`)。\w+ 匹配 "hello_world"
\d匹配任意个位数字 (`[0-9]`)。\d{4} 匹配 "2026"
\s匹配任意空白字符(空格、制表符、换行符)。\s+ 匹配连串空格
\W, \D, \S对应上述缩写的大写字母,意为取反(如 \D 匹配非数字)。\D+ 匹配纯英文字串
锚点与边界 (ANCHORS & BOUNDARIES)
^匹配字符串的开始。如开启 m (多行) 则匹配行首。^Hello
$匹配字符串的结束。如开启 m (多行) 则匹配行尾。end$
\b匹配单词边界(单词与非单词之间的位置)。\bword\b 匹配独立单词word
量词 (QUANTIFIERS)
*匹配前一个元素 0 次或多次。a*b 匹配 "b", "ab", "aab"
+匹配前一个元素 1 次或多次。a+b 匹配 "ab", "aab"
?匹配前一个元素 0 次或 1 次(可选)。也用于打破贪婪模式。https? 匹配 http 或 https
{n,m}精确控制匹配次数。匹配最少 n 次,最多 m 次。\d{3,5} 匹配 3-5 位数字
逻辑与分组 (GROUPS & LOGIC)
|或 (OR) 逻辑。匹配左边或右边的表达式。cat|dog
[abc]字符集合。匹配在中括号内的任意字符。[a-z] 匹配任意小写字母
[^abc]否定字符集合。匹配不在中括号内的任意字符。[^0-9] 匹配非数字字符
(...)捕获组。将多个字符组合为一个单位进行匹配,并将结果提取。(abc)+ 匹配 "abcabc"
(?:...)非捕获组。对字符进行组合,但不在内存中保存该组匹配的内容。(?:https)

原理与常见问题 (FAQ)

1. 贪婪模式(Greedy)与非贪婪模式(Lazy)有何区别?
正则默认是贪婪的,会尽可能多地匹配字符。例如对于 <div>test</div>,表达式 <.+> 会直接匹配整条字符串;而在量词后加上问号 <.+?> 则切换为非贪婪模式(惰性模式),遇到第一个 > 即停止,精准匹配 <div>。
2. 常用的修饰符(Flags:g, i, m, s, u)分别有何作用?

g (Global):全局匹配,查找目标文本中的所有符合项,而不是在第一个匹配成功后立即停止。

i (Ignore Case):忽略大小写,使 A 与 a 等价。

m (Multiline):多行模式,使 ^ 与 $ 能分别匹配每一行的开头与结尾,而非整篇文本的唯一首尾。

s (DotAll):单行模式,使通配点号 . 也能匹配换行符 \n。

u (Unicode):启用完整的 Unicode 字符集匹配,正确处理 Emoji 和四字节复合汉字。

3. 捕获组 (Capturing Group) 与非捕获组 (?:...) 如何选用?
标准圆括号 (abc) 会创建捕获组,将匹配到的内容保存到内存并分配组号(Group 1, Group 2 等),供后续引用或替换。如果仅仅是为了将多个子表达式用作逻辑分支(如 (?:http|https)),请使用非捕获组 (?:...),这样不会浪费组号和内存,能显著提升正则匹配的执行效率。
4. 前瞻断言与后顾断言(零宽断言 Lookaround)怎么使用?

零宽断言用于“指定某个位置的前后必须满足某种条件”,但断言本身不会消耗字符(即不包含在匹配结果中):

  • (?=exp) 正向前瞻:例如 \d+(?=元) 匹配“100元”中的 100,但不包含“元”。
  • (?!exp) 负向前瞻:例如 \d+(?!%) 匹配后面不是百分号的数字。
  • (?<=exp) 正向后顾:例如 (?<=\$)\d+ 匹配“$50”中的 50。
  • (?<!exp) 负向后顾:例如 (?<!\d)[a-z]+ 匹配前面没有数字的英文单词。
5. 在替换模式 (Replace) 中,$1, $2 与 $& 是什么意思?
在正则替换字符串中,$& 代表整个正则表达式匹配到的完整内容;$1, $2, $3... 分别代表第 1、第 2、第 3 个小括号捕获组提取出的子片段。例如将 (\d{4})-(\d{2})-(\d{2}) 替换为 $2/$3/$1,即可将 2026-09-01 瞬间格式化为 09/01/2026。
6. 为什么在代码中写正则时需要双重转义(如 \\d 而非 \d)?
在 JavaScript/Java/Python 等编程语言中,普通字符串本身会将斜杠 \ 识别为转义符号(例如 \n 代表换行)。如果您使用字符串构造正则 new RegExp("\\d"),字符串解析器会先将 \\ 解释为单个 \ 传递给正则引擎;而在正则字面量 /\d/ 中,则不需要额外转义。
7. 什么是正则表达式灾难性回溯(ReDoS)?如何避免?
当正则中存在相互嵌套的模糊量词(如 (a+)+$ 或 ([a-zA-Z]+)*)且目标文本尾部无法匹配时,正则引擎会穷举所有排列组合尝试回溯,导致计算步数呈指数级爆炸(100% 占用 CPU 造成服务器假死)。避免方法是消除重叠量词、使用互斥字符集或采用原子分组/占有量词。
8. 本工具测试时会卡顿吗?输入的数据是否会上传到服务器?
100% 本地实时运算,零数据上传。 温馨提示:本工具所有正则表达式解析、高亮标记与代码生成均在您的本地浏览器端通过 JavaScript 引擎完成,绝不会向云端发送任何输入文本或匹配结果,您可以放心测试各类业务代码与隐私数据。