正则表达式生成

61 浏览
4 试用
0 购买
Aug 26, 2025更新

帮助生成正则表达式并提供示例代码及详细讲解

示例1

好的,下面我们来设计一个适用于“PCRE”的正则表达式,用于匹配有效的电子邮件地址,并捕获域名部分。

---

### 正则表达式
```regex
([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})
```

#### 解释正则表达式的组成部分:
1. **`([a-zA-Z0-9._%+-]+)`**:
   - 匹配邮箱地址的用户名部分(`@`之前的部分)。
   - `[a-zA-Z0-9._%+-]`:匹配允许出现在用户名中的字符,包括大小写字母(`a-z`和`A-Z`)、数字(`0-9`)、点 (`.`)、下划线 (`_`)、百分号 (`%`)、加号 (`+`)、和减号 (`-`)。
   - `+`:匹配前面的字符集合一次或多次出现。

2. **`@`**:
   - 匹配邮箱地址中的 `@` 分隔符。

3. **`([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})`**:
   - 匹配邮箱地址的域名部分。
   - `[a-zA-Z0-9.-]+`:匹配域名的主机部分,可以由字母、数字、点 (`.`) 和短横线 (`-`) 组成,且必须一次或多次出现。
   - `\.`:匹配最后的点 (`.`)。
   - `[a-zA-Z]{2,}`:匹配顶级域名(如 `com`, `org` 等),由至少两个字母组成。

4. **捕获组**:
   - 第一组 `([a-zA-Z0-9._%+-]+)`:捕获邮箱地址的用户名部分。
   - 第二组 `([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})`:捕获邮箱地址的域名部分。

---

### 示例文本
示例文本为:
```
请联系 support@example.com 获取更多信息。
```

---

### Python 示例代码
下面展示如何在 Python 中使用该正则表达式来提取邮箱地址,并捕获域名部分。

```python
import re

# 示例文本
text = "请联系 support@example.com 获取更多信息。"

# 定义正则表达式
regex = r"([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})"

# 搜索匹配
match = re.search(regex, text)

if match:
    # 提取完整邮箱地址和域名部分
    email = match.group(0)  # 整个邮箱地址
    domain = match.group(2)  # 域名部分
    print(f"完整邮箱地址: {email}")
    print(f"域名部分: {domain}")
else:
    print("没有找到邮箱地址。")
```

---

### 输出结果
运行上述代码会输出:
```
完整邮箱地址: support@example.com
域名部分: example.com
```

---

### 说明
- `re.search` 方法会扫描文本中第一个匹配到的子串。
- 使用 `.group(0)` 获取完整匹配结果。
- 使用 `.group(2)` 提取 `@` 之后的域名部分,可以根据需要做进一步处理。

此正则表达式既能够满足匹配电子邮件的基本规则,又简洁精炼,便于理解和应用。

示例2

### 正则表达式及详解

我们需要一个正则表达式来匹配“日期格式YYYY-MM-DD”。以下是正则表达式:

```
\b\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])\b
```

#### 解释正则表达式
- `\b`:表示单词边界,确保匹配的日期是一个独立的部分,而不是某些字符串的一部分(如“2023-10-01abc”不会匹配)。
- `\d{4}`:匹配 4 个连续的数字,代表年。
- `-`:匹配一个连接年份和月份的连字符。
- `(0[1-9]|1[0-2])`:匹配月份,月份范围是 `01` 到 `12`,使用两部分 OR 来表示:
  - `0[1-9]`:表示 `01` 到 `09`。
  - `1[0-2]`:表示 `10` 到 `12`。
- `-(0[1-9]|[12]\d|3[01])`:匹配日期部分,范围是 `01` 到 `31`,拆分为三段 OR 表达:
  - `0[1-9]`:表示 `01` 到 `09`。
  - `[12]\d`:表示 `10` 到 `29`。
  - `3[01]`:表示 `30` 和 `31`。
- `\b`:再一次表示单词边界,确保匹配的文本是完整的日期格式。

---

### 示例代码
以下代码展示了如何在 JavaScript 中使用此正则表达式提取日期信息。

```javascript
// 示例文本
const text = "该文件创建于2023-10-01,请在此日期后更新。";

// 定义正则表达式
const regex = /\b\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])\b/;

// 使用 .match 方法提取日期
const match = text.match(regex);

if (match) {
  console.log("提取到的日期:", match[0]); // 输出完整日期
} else {
  console.log("未找到匹配的日期格式");
}
```

---

### 执行结果解释
对于示例文本 `"该文件创建于2023-10-01,请在此日期后更新。"`, 正则表达式会匹配到 `"2023-10-01"`。

示例代码的执行结果将是:

```
提取到的日期: 2023-10-01
```

示例3

### 正则表达式生成和解释

#### 正则表达式:
```regex
(\d{3})[- ]?(\d{3})[- ]?(\d{4})
```

#### 解释:
1. **`(\d{3})`**:
   - `\d`: 匹配数字(0-9)。
   - `{3}`: 精确匹配 3 个数字。
   - `()` 用于分组捕获,表示匹配的内容会被记忆下来,便于后续提取。

2. **`[- ]?`**:
   - `[- ]`: 匹配 `-` 或者空格(匹配分隔符)。
   - `?`: 表示匹配 0 或 1 次分隔符,这使得电话号码中间的分隔符可选。

3. **`(\d{3})`**:
   - 同上,匹配 3 个数字并捕获到第二组。

4. **`[- ]?`**:
   - 同上,匹配中间的分隔符。

5. **`(\d{4})`**:
   - 同上,匹配 4 个数字,并捕获到第三组。

### 匹配范围:
- 此正则表达式可以匹配以下格式的电话号码:
  - `123-456-7890`
  - `123 456 7890`
  - `1234567890`

---

### Python 示例代码

下面的 Python 代码使用上述正则表达式进行:
1. 查找所有电话号码。
2. 将格式统一为 `(XXX) XXX-XXXX` 格式输出。

```python
import re

# 示例文本
text = "请拨打紧急联系人 123-456-7890 或者拨号 9876543210。"

# 正则表达式
pattern = r"(\d{3})[- ]?(\d{3})[- ]?(\d{4})"

# 查找所有电话号码并格式化
def format_phone_numbers(input_text):
    results = re.findall(pattern, input_text)  # 捕获所有符合格式的电话号码
    formatted_numbers = []

    for match in results:
        # 每个 match 是一个三元组,像 ('123', '456', '7890')
        formatted_numbers.append(f"({match[0]}) {match[1]}-{match[2]}")

    return formatted_numbers

# 调用函数并打印结果
formatted_numbers = format_phone_numbers(text)
print("匹配的电话号码:", formatted_numbers)  # 输出格式化结果
```

---

### 代码输出与说明

#### 输出结果:
```plaintext
匹配的电话号码: ['(123) 456-7890', '(987) 654-3210']
```

#### 运行说明:
- **输入**: 示例文本中包含 `123-456-7890` 和 `9876543210`。
- **处理**:
  - 通过 `re.findall` 方法捕获电话的三个部分(区号、前三位、后四位)。
  - 将分隔符统一通过 `f"({group1}) {group2}-{group3}"` 格式化为标准格式 `(XXX) XXX-XXXX`。
- **输出**: 将所有电话号码格式化后输出为 Python 列表。

以上代码实现了电话号码的匹配与格式化,适用于多种分隔符的电话号码形式。

适用用户

开发者和程序员

快速生成适配特定开发环境的正则表达式,并且直接获取示例代码,免去反复调试的时间。

数据分析师

通过正则表达式对文本数据进行高效清洗、提取与格式化,提高数据处理效率。

非技术行业用户

无需掌握复杂的正则语法,也可以通过直观的提示生成符合需求的正则表达式。

教育与培训从业者

为学生或学员提供逐步分解的正则表达式讲解,辅助教学和知识传播。

QA工程师或测试人员

通过正则快速设计文本匹配规则,用于自动化测试数据验证和分析。

解决的问题

帮助用户快速生成适用于特定场景的正则表达式,同时提供详细的讲解以便于理解,并结合示例代码展示其实用性,适用于广泛的技术开发与数据处理场景。

特征总结

轻松生成精准正则表达式,快速解决文本匹配与提取问题,适应多种场景需求。
提供示例代码与详细讲解,让用户即使没有正则经验也能快速上手和理解。
支持多种语言与平台的代码展示,帮助开发者直接借用生成的代码。
针对不同使用场景定制正则表达式,确保满足特定业务需求。
自动分析示例文本,智能优化表达式,减少用户自行调试时间。
清晰解释正则表达式的每一部分,让用户不仅会用,更能学会。
覆盖多种正则风格(如Python、JavaScript等),适配用户常见开发环境。
提供场景化应用指导,结合具体任务展示正则如何解决实际问题。
参数化提示词输入,用户只需简单描述需求即可生成符合需求的表达式。
内置最佳实践与优化建议,提高正则表达式的可读性与执行效率。

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

30 积分
平台提供免费试用机制,
确保效果符合预期,再付费购买!

您购买后可以获得什么

获得完整提示词模板
- 共 135 tokens
- 6 个可调节参数
{ 正则类型 } { 匹配模式描述 } { 示例文本 } { 可选说明 } { 编程语言 } { 具体任务 }
自动加入"我的提示词库"
- 获得提示词优化器支持
- 版本化管理支持
获得社区共享的应用案例
限时免费

不要错过!

免费获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59
摄影
免费 原价:20 限时
试用