gpt4 book ai didi

java - 正则表达式从 Whatsapp 文本文件获取信息

转载 作者:行者123 更新时间:2023-12-01 12:40:57 25 4
gpt4 key购买 nike

我不知道如何创建正则表达式来从文本文件中提取不同的文本。我正在处理包含 Whatsapp 聊天中的消息详细信息的文本文件。

考虑来自 Whatsapp 聊天文本文件的以下数据:

25/12/2012 9:15 am: User1: Faith makes all things possible,
Hope makes all things work,
Love makes all things beautiful,
May you have all the three for this Christmas.
MERRY CHRISTMAS
01/01/2013 12:03 am: User1: <message>.
04/08/2013 10:54 am: User2: Happy Friendship day
13/10/2013 11:57 am: User1:<message>
<message continues>
<message continues>
30/12/2013 10:07 pm: User3:<message>
30/12/2013 11:12 pm: User4: Same to you

这是一个示例聊天文本,我需要从中提取日期、时间、用户名、消息。我正在为此工作。我为此制定的java代码如下。但是没有根据我的要求找到任何正确的REGEX。

BufferedReader br = new BufferedReader(new FileReader("text filepath"));
String sCurrentLine;
Pattern r = Pattern.compile(REGEX); //REGEX required for extracting data
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
Matcher m = r.matcher(sCurrentLine);

if (m.find()) {
System.out.println("Date: " + m.group(1) );
System.out.println("Time: " + m.group(2) );
System.out.println("User: " + m.group(3) );
System.out.println("Message: " + m.group(4) );
} else {
System.out.println("NO MATCH");
}

预先感谢您的帮助!

最佳答案

我认为您正在寻找这个正则表达式,

(\d{2}\/\d{2}\/\d{4})\s(\d(?:\d)?:\d{2} [ap]m):\s([^:]*):(.*?)(?=\s*\d{2}\/|$)

Java 正则表达式是,

"(?s)(\\d{2}/\\d{2}/\\d{4})\\s(\\d(?:\\d)?:\\d{2} [ap]m):\\s([^:]*):(.*?)(?=\\s*\\d{2}/|$)"

DEMO

关于java - 正则表达式从 Whatsapp 文本文件获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25105117/

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