AI 正则生成器用于把匹配需求转换成正则表达式。适合提取邮箱、订单号、URL、日期、代码片段或自定义文本模式。
描述你要匹配或排除的内容,并补充示例文本。请说明大小写、全局匹配、数字范围、分隔符或必须保留的边界条件。
结果包含正则表达式、测试样例和简短解释。复制到项目中前,请用真实数据测试,尤其注意多语言字符、换行和转义规则。
正则最怕只看起来能匹配。说明要匹配的文本、排除条件和目标环境后,工具会给出可测试的表达式和示例。正则可能因语言或运行环境不同而表现不同,使用前需要在目标环境验证。
输入示例
匹配需求: 匹配合法电子邮件地址。要求:支持常用的个人和企业邮箱(如 Gmail、Outlook、公司域名邮箱),允许大小写字母、数字、点号、下划线和连字符在 @ 前出现,域名部分允许多级子域名,顶级域名至少两个字母。排除没有 @ 符号、@ 前后为空、或含有连续点号的无效格式。
正则风格: JavaScript输出示例
## 正则表达式
```javascript
/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
```
## 模式分解
- `^` — 匹配字符串开头。
- `[a-zA-Z0-9._%+-]+` — 本地部分:允许字母、数字和 . _ % + - 字符,至少一个。
- `@` — 必须包含 @ 符号。
- `[a-zA-Z0-9.-]+` — 域名部分:允许字母、数字、点号和连字符,至少一个。
- `\.` — 顶级域名前的点号(转义为字面量)。
- `[a-zA-Z]{2,}` — 顶级域名:仅允许字母,至少 2 个字符。
- `$` — 匹配字符串结尾。
## 匹配示例
✅ user@example.com
✅ first.last@sub.example.co.uk
✅ user+tag@domain.com
❌ user@domain(缺少 TLD)
❌ @domain.com(本地部分为空)
❌ user..name@domain.com(连续点号)
## 边界提醒
- 该正则允许域名中出现连续连字符(如 user@dom--ain.com),如需排除可将域名部分改为 `(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\.`。
- 顶级域名最大长度在实际中应 ≤ 63 字符,可添加 {2,63} 约束。
- 如需在表单中做严格校验,建议先用该正则做格式过滤,再通过发送验证邮件确认地址真实有效。AI 可以给出很好的初稿,但正则行为取决于引擎、修饰符、输入编码以及真实数据的边界情况。请把输出当作起点,并用正例和反例继续测试。
建议写清目标格式、允许字符、长度限制、是否必须匹配整段字符串,以及有效和无效示例。约束越具体,越不容易生成过度匹配的表达式。
避免在模糊输入上使用多层贪婪量词,并用很长且接近匹配的字符串测试性能。如果正则会处理用户输入,上线前需要检查灾难性回溯风险。
正则表达式可能存在性能瓶颈(如灾难性回溯),请在用于生产环境前使用代表性的数据进行验证。