跳到主要内容

常用正则示例

这些表达式用于格式初筛或文本提取,以 JavaScript 为基准。下面的整值模式按单行输入使用,不启用 m;需要完整验证时还应检查匹配长度和输入类型。

数字与标识符​

用途模式边界
非负整数文本^[0-9]+$允许前导零
可带符号的整数^[+-]?[0-9]+$不接受空串或只有符号
普通十进制数^[+-]?(?:[0-9]+(?:\.[0-9]+)?|\.[0-9]+)$接受 .5,不接受指数、1.
小写 slug^[a-z0-9]+(?:-[a-z0-9]+)*$不接受首尾连字符或连续连字符
3 或 6 位十六进制颜色^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$必须含 #,不涵盖所有 CSS 颜色写法
UUID v4^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$加 i 接受大写

数字格式匹配不代表数值在业务范围内。ID、大整数和精确金额不要直接依赖 JavaScript Number 转换。

网络地址​

IPv4 的每段限制为 0 到 255,并拒绝多余前导零:

^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$

MAC 地址用固定分隔符,避免混用冒号和连字符:

^(?:[0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$

IPv6、网段包含和地址范围请交给专用解析器,或使用 IP 范围与网段工具。端口可以先用数字模式筛选,再做 0 到 65535 的整数范围检查,并按业务决定是否允许 0。

邮箱、网址和日期​

用途模式后续处理
常见邮箱形状^[^\s@]+@[^\s@]+\.[^\s@]+$非完整 RFC 邮箱语法;确认可达性仍需验证邮件
文本中的 HTTP 链接候选https?://[^\s<>"']+可能含句尾标点;再用 URL 解析器处理
YYYY-MM-DD 外形^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$不能判断 2 月 31 日,需要日历校验
24 小时时间^(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?$可选秒,不含时区与闰秒
国际号码外形^\+[1-9][0-9]{1,14}$仅长度和符号初筛,不证明号码已分配

文本提取​

\b(\w+)\s+\1\b

上式查找连续重复的 ASCII 风格单词,例如 hello hello;它不适合直接处理中文分词。

BEGIN([\s\S]*?)END

上式提取两个标记间的最短内容,不处理嵌套标记。HTML、CSV、JSON 等有结构或转义规则的数据应使用相应解析器。

用正反例验证​

每个模式至少检查正常值、空串、缺字段、多一个字符和边界值。比如十进制数应接受 -12.5、.5,拒绝 +、空串和 1..2。带 g 的正则对象不要在多次 test() 时忽略 lastIndex。

语法速查解释分组和标志;正则测试工具可显示匹配结果。

来源与许可​

本页由 Jacob’s Wiki 于 2026-11-05 对 IT-Tools 原文作中文摘译、重组和补充,保留常用操作,并非逐行全译。原文归 IT-Tools 项目贡献者所有。

本页译文与改编内容按 GNU GPL 3.0 提供,不附带担保;本站 Markdown 源码可用于修改和再分发。

返回开发运维速查目录