正则表达式在线测试与常用正则速查表 (Regex Tester)

专为前端表单校验、爬虫提取与服务端日志分析打造的轻快正则调试器。支持实时多项匹配结果列表呈现,集成 200ms 防抖与 ReDoS 防假死保护,预置 6 款工业级常用模板。

常用正则表达式速查模板清单

业务场景 正则表达式模式 Pattern
电子邮箱 (Email) [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
中国手机号码 1[3-9]\d{9}
IPv4 地址 (?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
HTTP/HTTPS 链接 https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)
中文字符匹配 [\u4e00-\u9fa5]+
中国二代身份证号 [1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dXx]

常见问题解答 (FAQ)

Q: 常用的正则表达式修饰符(Flags)代表什么?

A: g (Global) 代表全局匹配,找到目标字符串中所有符合条件的结果而非在命中首项后退出;i (Ignore Case) 代表忽略英文大小写;m (Multiline) 代表多行匹配,让 ^ 和 $ 可以分别定位每行的行首与行尾;s (Dot All) 允许点号 '.' 匹配换行符。

Q: 什么是正则表达式拒绝服务攻击 (ReDoS)?如何预防?

A: 当正则表达式包含大量嵌套分组、重叠交替以及贪婪量词(例如 (a+)+$)时,面对精心构造的不匹配长输入,正则引擎会发生天文数字级别的灾难性回溯(Catastrophic Backtracking),导致 CPU 满载假死。DevHub 通过文本长度截断与最多循环限制进行安全防死锁。

Q: 如何用正则准确匹配包含汉字中文字符的内容?

A: 基本中文字符的 Unicode 范围为 [\u4e00-\u9fa5]。若要匹配全汉字字符串,可使用 ^[\u4e00-\u9fa5]+$;在现代 ES2018+ 还可以使用 Unicode 属性转义 /\p{Script=Han}+/u。

Q: 贪婪匹配和非贪婪匹配有什么区别?

A: 量词(*、+、?、{n,m})默认贪婪,尽量多吃字符;后跟 ? 变为非贪婪,尽量少吃。例如对 "a"b"c",/".*"/ 一口吞到底,而 /".*?"/ 依次匹配出 "a" 与 "c"。提取成对符号之间的内容时几乎总应使用非贪婪。

Q: 正则的前瞻断言 (?=) 和 (?!) 是什么?

A: (?=x) 表示"此处后面必须是 x"但不消耗字符;(?!x) 表示"此处后面不能是 x"。常用于"后面跟着单位的数字""不含某词的行"等场景。ES2018 起还支持后行断言 (?<=) 与 (?<!)。

浏览更多 DevHub 生产力工具

JSON 实验室 时间戳转换器 JWT 解码器 全能编解码与哈希 Cron 表达式工具 UUID 生成器 颜色转换器 AES 加解密 变量命名转换 SQL 格式化 cURL 转代码 Diff 文本对比 JSON 转类型 返回 DevHub 首页