常用正则示例
这些表达式用于格式初筛或文本提取,以 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 源码可用于修改和再分发。