热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
帮助生成正则表达式并提供示例代码及详细讲解
好的,下面我们来设计一个适用于“PCRE”的正则表达式,用于匹配有效的电子邮件地址,并捕获域名部分。
([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})
([a-zA-Z0-9._%+-]+)
:
@
之前的部分)。[a-zA-Z0-9._%+-]
:匹配允许出现在用户名中的字符,包括大小写字母(a-z
和A-Z
)、数字(0-9
)、点 (.
)、下划线 (_
)、百分号 (%
)、加号 (+
)、和减号 (-
)。+
:匹配前面的字符集合一次或多次出现。@
:
@
分隔符。([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})
:
[a-zA-Z0-9.-]+
:匹配域名的主机部分,可以由字母、数字、点 (.
) 和短横线 (-
) 组成,且必须一次或多次出现。\.
:匹配最后的点 (.
)。[a-zA-Z]{2,}
:匹配顶级域名(如 com
, org
等),由至少两个字母组成。捕获组:
([a-zA-Z0-9._%+-]+)
:捕获邮箱地址的用户名部分。([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})
:捕获邮箱地址的域名部分。示例文本为:
请联系 support@example.com 获取更多信息。
下面展示如何在 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])
:匹配月份,月份范围是 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 中使用此正则表达式提取日期信息。
// 示例文本
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})
(\d{3})
:
\d
: 匹配数字(0-9)。{3}
: 精确匹配 3 个数字。()
用于分组捕获,表示匹配的内容会被记忆下来,便于后续提取。[- ]?
:
[- ]
: 匹配 -
或者空格(匹配分隔符)。?
: 表示匹配 0 或 1 次分隔符,这使得电话号码中间的分隔符可选。(\d{3})
:
[- ]?
:
(\d{4})
:
123-456-7890
123 456 7890
1234567890
下面的 Python 代码使用上述正则表达式进行:
(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-7890
和 9876543210
。re.findall
方法捕获电话的三个部分(区号、前三位、后四位)。f"({group1}) {group2}-{group3}"
格式化为标准格式 (XXX) XXX-XXXX
。以上代码实现了电话号码的匹配与格式化,适用于多种分隔符的电话号码形式。
快速生成适配特定开发环境的正则表达式,并且直接获取示例代码,免去反复调试的时间。
通过正则表达式对文本数据进行高效清洗、提取与格式化,提高数据处理效率。
无需掌握复杂的正则语法,也可以通过直观的提示生成符合需求的正则表达式。
帮助用户快速生成适用于特定场景的正则表达式,同时提供详细的讲解以便于理解,并结合示例代码展示其实用性,适用于广泛的技术开发与数据处理场景。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
免费获取高级提示词-优惠即将到期