热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
根据指定匹配需求生成精准正则表达式,详细解释各组成部分,并提供示例文本与代码演示,帮助快速应用于文本匹配与数据处理场景。
以下为满足要求的 Python 正则表达式与用法示例。
一、推荐正则表达式(忽略大小写,全局匹配)
模式(单行版,便于复制):
\b(?P
说明(逐段解析):
二、示例文本 团队联系方式:
三、Python 代码示例 功能:提取所有邮箱地址;打印每个匹配的 local 与 domain;按 domain 分组计数;输出去重后的邮箱列表与总数。
import re
from collections import Counter
text = """团队联系方式:
- 开发: dev.team+build@lab.example.org
- 客服: support_cn@help.example.net
- 招聘: hr@jobs.example.com
亦可写作备选: user.name_2025+news@sub.example.net,欢迎投递。"""
# 编译正则(忽略大小写,使用 VERBOSE 便于阅读)
pattern = re.compile(r"""
\b
(?P<local>[A-Za-z0-9_+]+(?:\.[A-Za-z0-9_+]+)*) # 本地部分
@
(?P<domain>(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,24}) # 域名+TLD
\b
""", re.IGNORECASE | re.VERBOSE)
# 1) 全局匹配并打印每个匹配的 local 与 domain
matches = list(pattern.finditer(text))
for m in matches:
print(f"email={m.group(0)} | local={m.group('local')} | domain={m.group('domain')}")
# 2) 按域名分组计数(忽略大小写)
domain_counts = Counter(m.group('domain').lower() for m in matches)
print("\n按域名统计:")
for domain, count in domain_counts.most_common():
print(f"{domain}: {count}")
# 3) 输出去重后的邮箱列表与总数(忽略大小写去重)
unique_emails = sorted({m.group(0).lower() for m in matches})
print("\n去重邮箱列表:")
for email in unique_emails:
print(email)
print(f"总数: {len(unique_emails)}")
备注:
以下给出一条适用于 Java 的正则表达式,以及其含义说明与完整示例代码(提取与脱敏)。
一、Java 正则表达式
(?<!\d)(?
二、组成部分解释
三、示例文本 2025-11-18 10:21:05 INFO client=10.4.23.8:8080 status=200 2025-11-18 10:21:07 WARN client=192.168.0.12 status=403 2025-11-18 10:21:10 INFO client=172.16.5.100:443 action=CONNECT 边界测试:source=255.255.255.255:65535 完整通过
四、Java 代码示例
示例代码(可直接运行): import java.util.; import java.util.regex.;
public class IpPortExtractorAndMasker {
// 结果对象
static class ClientEndpoint {
final String ip;
final Integer port; // null 表示未出现端口
final int lineNo;
ClientEndpoint(String ip, Integer port, int lineNo) {
this.ip = ip;
this.port = port;
this.lineNo = lineNo;
}
@Override
public String toString() {
return "ClientEndpoint{ip=" + ip +
", port=" + (port == null ? "null" : port) +
", line=" + lineNo + "}";
}
}
public static void main(String[] args) {
String text = String.join("\n",
"2025-11-18 10:21:05 INFO client=10.4.23.8:8080 status=200",
"2025-11-18 10:21:07 WARN client=192.168.0.12 status=403",
"2025-11-18 10:21:10 INFO client=172.16.5.100:443 action=CONNECT",
"边界测试:source=255.255.255.255:65535 完整通过"
);
String OCTET = "(?:25[0-5]|2[0-4]\\d|1\\d\\d|0?\\d{1,2})";
String PORT = "(?:6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[1-5]\\d{4}|[1-9]\\d{0,3})";
String REGEX = "(?<!\\d)(?<ip>(" + OCTET + ")(?:\\." + OCTET + "){3})(?::(?<port>" + PORT + "))?(?!\\d)";
Pattern pattern = Pattern.compile(REGEX);
// 1) 提取对象列表
List<ClientEndpoint> endpoints = new ArrayList<>();
String[] lines = text.split("\\R");
for (int i = 0; i < lines.length; i++) {
Matcher m = pattern.matcher(lines[i]);
while (m.find()) {
String ip = m.group("ip");
String portStr = m.group("port");
Integer port = (portStr == null) ? null : Integer.valueOf(portStr);
endpoints.add(new ClientEndpoint(ip, port, i + 1));
}
}
// 2) 生成脱敏日志(IP -> [IP],端口保留)
Matcher m2 = pattern.matcher(text);
StringBuffer masked = new StringBuffer();
while (m2.find()) {
String portStr = m2.group("port");
String replacement = "[IP]" + (portStr != null ? ":" + portStr : "");
m2.appendReplacement(masked, Matcher.quoteReplacement(replacement));
}
m2.appendTail(masked);
// 输出结果
System.out.println("提取结果:");
for (ClientEndpoint e : endpoints) {
System.out.println(e);
}
System.out.println("\n脱敏后的日志:");
System.out.println(masked.toString());
}
}
说明
帮助用户快速生成适用于特定场景的正则表达式,同时提供详细的讲解以便于理解,并结合示例代码展示其实用性,适用于广泛的技术开发与数据处理场景。
快速生成适配特定开发环境的正则表达式,并且直接获取示例代码,免去反复调试的时间。
通过正则表达式对文本数据进行高效清洗、提取与格式化,提高数据处理效率。
无需掌握复杂的正则语法,也可以通过直观的提示生成符合需求的正则表达式。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
免费获取高级提示词-优惠即将到期