◯ 免费:每天5次 • 重置倒计时 16h 13m
开发 & 技术

正则表达式生成器

将普通英文描述转换为可在 JavaScript、Python、PCRE、Go、Java 或 .NET 中使用的正则表达式——提供逐标记解释、测试用例,以及模式有意匹配或不匹配的边界情况。

了解更多

正则表达式生成器根据对等的匹配描述生成正则表达式,使用您实际运行的语言风格——JavaScript、Python、PCRE、Go 的 RE2、Java 或 .NET——并对其进行验证:每个标记都有解释,您提供的必须匹配和必须不匹配的字符串示例都会被检查,且该模式附带额外的测试用例、您语言的使用示例以及对其有意排除的边界情况的说明。它还会在某些需求在您所选的语言风格中无法实现时(例如 Go 中的后向查找),提示您,而不是悄悄生成无法编译的模式。

0 / 3000
0 / 10000
0 / 10000

✓ 免费使用——无需注册,无需信用卡。

开发者

仅限公司邮箱地址

注册校验,拒绝免费网络邮箱域名

查看输入和输出预览

输入

模式应匹配什么?
Email addresses on the company domains acme.com and acme.co.uk, case-insensitive. Reject everything else, including gmail and addresses with nothing before the @.
正则表达式语言
JavaScript / TypeScript
必须匹配的示例(每行一个)
[email protected] [email protected]
必须不匹配的示例(每行一个)
[email protected] @acme.com
严格程度
实用(可读,覆盖常见情况)

输出(节选)

```javascript
/^[a-z0-9._%+-]+@acme\.(?:com|co\.uk)$/i
```

**标志:** `i` — 域名和本地部分不区分大小写。

| Token | Meaning |
|---|---|
| `^` … `$` | 整个字符串必须是完整地址 |
| `[a-z0-9._%+-]+` | 本地部分:一个或多个字母、数字或常用标点 |
| `@acme\.` | 字面量 @acme. — 点已转义 |
| `(?:com\|co\.uk)` | 恰好匹配两个公司域名之一 |

| Input | Expected | Why |
|---|---|---|
| `[email protected]` | match | 本地部分普通,域名被允许 |
| `[email protected]` | match | 本地部分有点,第二个域名 |
| `[email protected]` | no match | 域名不在列表中 |
| `@acme.com` | no match | 本地部分为空 |
| `[email protected]` | no match | 已锚定,后面不允许有内容 |…
所有用户

ISO 8601 日期

在解析之前从日志行中提取日期

查看输入和输出预览

输入

模式应匹配什么?
ISO calendar dates like 2026-09-20 anywhere inside a line of text. Month 01-12, day 01-31. Do not match 2026-13-01 or 26-09-20.
正则表达式语言
Python (re)
必须匹配的示例(每行一个)
deployed 2026-09-20 at 05:01 2024-02-29
必须不匹配的示例(每行一个)
2026-13-01 26-09-20
严格程度
严格(拒绝所有无效输入)

输出(节选)

```python
r"(?<!\d)(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(?!\d)"
```

**标志:** 无。由于日期位于行内,模式未锚定。

| Token | Meaning |
|---|---|
| `(?<!\d)` | 前面不是数字 — 排除 `12026-09-20` |
| `(\d{4})` | 四位年份,已捕获 |
| `(0[1-9]\|1[0-2])` | 月份 01-12 |
| `(0[1-9]\|[12]\d\|3[01])` | 日期 01-31 |
| `(?!\d)` | 后面不是数字 |

**边缘情况:** 模式不考虑月份天数 — `2026-02-31` 仍会匹配。提取后使用 `datetime.date.fromisoformat()` 进行验证,使用示例中展示了…

你的 正则表达式生成器 结果将显示在这里

你将得到带注释的整洁代码块,以及对改动内容的简短说明。

如何使用 正则表达式生成器

  1. 用简洁语言描述模式应匹配的内容,包括必须排除的内容——“公司邮箱地址,而非免费网络邮箱”比单纯“邮箱”更明确。
  2. 选择您将使用的语言风格。Go、JavaScript、Python、Java、.NET 和 PCRE 在环视支持、Unicode 处理和转义方式上各有差异。
  3. 粘贴几条必须匹配的字符串和几条必须不匹配的字符串,每行一条。模式会针对每一条进行检查。
  4. 选择严格程度:‘实用’用于可读且覆盖常规输入的模式,‘严格’用于验证,‘宽松’用于宽泛捕获后再过滤。

使用案例

1

验证表单输入,如邮政编码、车牌号或内部 ID 格式

2

从日志行和电子邮件中提取日期、发票号或订单引用

3

在编辑器或迁移脚本中构建批量清理的搜索替换功能

4

通过将其粘贴为描述,解释同事在代码库中留下的旧模式

5

在将脚本从 Python 移植到 Go 时,将模式从一种语言风格转换为另一种

最佳结果的技巧

  • 提供 must-not-match 示例——它们比 must-match 示例更能提升模式的精准度。
  • 如果需要在语言字符串内部使用,请指定相应的方言:转义是答案的一部分。
  • 针对面向用户的校验,请选择 “Strict”,并在发布前阅读边缘情况章节。
  • 对不可信输入使用嵌套重复的模式可能导致服务器卡死;当存在此风险时,输出会给出警告。

常见问题

支持哪些正则表达式方言?

JavaScript 与 TypeScript、Python 的 re 模块、PCRE(PHP、Ruby、Perl)、Go 的 RE2 引擎、Java 与 .NET。模式以所选语言的字面量形式编写,并使用该语言所需的转义。

它会测试正则模式吗?

您提供的每个示例都会在测试表中列出,显示预期结果及原因。工具还会添加边界情况——空输入、空白字符、接近匹配等——让您了解哪些会被漏掉。

为什么它在 Go 中说我的需求不可实现?

Go 的 RE2 引擎保证线性时间匹配,因此不支持前瞻、后顾或反向引用。当描述需要这些特性时,工具会提示并提供 RE2 能编译的最接近的模式,通常需要在代码中加入少量检查。

Practical、Strict 和 Lenient 有何区别?

Practical 模式可读且覆盖实际出现的输入。Strict 模式会拒绝所有无效字符串,代价是模式更长且可读性下降——用于校验。Lenient 模式宽松捕获,便于后续在代码中筛选——用于从混乱文本中提取。

它能解释我已有的正则表达式吗?

可以。将已有模式粘贴到描述中并加上 “explain this”,输出会逐标记解释,列出匹配内容,并指出可能导致灾难性回溯的风险。

🔒
您的隐私受到保护

我们会将您的输入和结果保存最多 90 天,用于运行服务、防止滥用,以及在您登录时显示您的历史记录。这些内容由我们隐私政策中列出的 AI 服务商处理。我们不会出售这些内容。

相关工具

试用此智能体

API自动化代理用普通英语描述自动化需求 → 生成REST/ webhook流程 → 提供curl + Python + Node示例 → 映射至AICT公共API端点。试用此智能体 →

相关工作流

打造品牌识别从概念到连贯统一的视觉系统运行工作流 →

阅读更多