AI 提示词:正则表达式生成

186 浏览
18 试用
4 购买
Aug 26, 2025更新

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

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


正则表达式

([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})

解释正则表达式的组成部分:

  1. ([a-zA-Z0-9._%+-]+)

    • 匹配邮箱地址的用户名部分(@之前的部分)。
    • [a-zA-Z0-9._%+-]:匹配允许出现在用户名中的字符,包括大小写字母(a-zA-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 中使用该正则表达式来提取邮箱地址,并捕获域名部分。

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) 提取 @ 之后的域名部分,可以根据需要做进一步处理。

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

正则表达式及详解

我们需要一个正则表达式来匹配“日期格式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]):匹配月份,月份范围是 0112,使用两部分 OR 来表示:
    • 0[1-9]:表示 0109
    • 1[0-2]:表示 1012
  • -(0[1-9]|[12]\d|3[01]):匹配日期部分,范围是 0131,拆分为三段 OR 表达:
    • 0[1-9]:表示 0109
    • [12]\d:表示 1029
    • 3[01]:表示 3031
  • \b:再一次表示单词边界,确保匹配的文本是完整的日期格式。

示例代码

以下代码展示了如何在 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

正则表达式生成和解释

正则表达式:

(\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 格式输出。
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)  # 输出格式化结果

代码输出与说明

输出结果:

匹配的电话号码: ['(123) 456-7890', '(987) 654-3210']

运行说明:

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

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

示例详情

适用用户

开发者和程序员

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

数据分析师

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

非技术行业用户

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

解决的问题

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

特征总结

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

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

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

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

2. 发布为 API 接口调用

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

3. 在 MCP Client 中配置使用

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

AI 提示词价格
¥15.00元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 135 tokens
- 6 个可调节参数
{ 正则类型 } { 匹配模式描述 } { 示例文本 } { 可选说明 } { 编程语言 } { 具体任务 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
限时免费

不要错过!

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

17
:
23
小时
:
59
分钟
:
59