gpt4 book ai didi

java - 给定 SMS 字符串的正则表达式是什么

转载 作者:行者123 更新时间:2023-12-01 15:14:45 28 4
gpt4 key购买 nike

我的字符串是一条短信,采用以下两种格式之一:

潜在客户短信:
您已收到 1 条线索
标题:我的领导
潜在客户 ID:12345-2365
警报设置 ID:890

短信回复:
您已收到 1 条回复
标题:我的回复
回复ID:12345-2365
广告 ID:890

实际上,我正在解析短信以将值存储在数据库中的各个字段中。我想使用正则表达式来解析逻辑。正如您在上面看到的,短信通过线索或回复来区分,并且字段根据它们的不同而不同(以粗体显示)。我的问题是如何使用正则表达式来区分这两种短信类型。例如,如果我想区分短信字符串中的潜在客户 ID 和回复 ID,那么正则表达式字符串是什么?

注意:我知道还有另一种方法,称为 String.split() 但基于此编写的代码太长且复杂。所以使用正则表达式。

感谢和问候
索海布·拉赫曼

最佳答案

我使用此代码来提取消息的 ID 值并区分消息类型。我使用的代码是这样的:

    String lead = "You have received 1 lead\ntitle:my lead\nlead id:12345-2365\nalert setting id:890";
String reply = "You have received 1 reply\ntitle:my reply\nreply id:12345-2365\nad id:890\n";

Pattern leadPattern = Pattern.compile("lead id:\\s*(\\d{5}-\\d{4})", Pattern.MULTILINE);
Matcher leadMatcher = leadPattern.matcher(lead);
if (leadMatcher.find())
{
System.out.println("Lead: " + leadMatcher.group(1));
}


Pattern replyPattern = Pattern.compile("reply id:\\s*(\\d{5}-\\d{4})", Pattern.MULTILINE);
Matcher replyMatcher = replyPattern.matcher(reply);
if (replyMatcher.find())
{
System.out.println("Reply: " + replyMatcher.group(1));
}

System.out.println(leadPattern.matcher(reply).find());
System.out.println(replyPattern.matcher(lead).find());

结果如下:

Lead: 12345-2365
Reply: 1234-2365
false
false

关于java - 给定 SMS 字符串的正则表达式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11789622/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com