使用regex和java从聊天日志中获取一组数据

使用regex和java从聊天日志中获取一组数据,java,regex,Java,Regex,我正在编写一个Java程序,其中必须从聊天日志文件中提取一些数据,以便使用regex进行进一步处理(顺便说一下,我对正则表达式还不熟悉)。聊天日志模式的定义如下:[hh:mm:ss]string。 但我想提取数据的具体行是 [hh:mm:ss]数据2。我想提取的数据是hh:mm:ss、data1和data2。 起初,我试图提取更容易使用的时间 Pattern.compile((\d{2}:\d{2}:\d{2})。 我甚至可以使用 模式p1=Pattern.compile(“”;结果很好。 但是

我正在编写一个Java程序,其中必须从聊天日志文件中提取一些数据,以便使用regex进行进一步处理(顺便说一下,我对正则表达式还不熟悉)。聊天日志模式的定义如下:[hh:mm:ss]string
但我想提取数据的具体行是 [hh:mm:ss]数据2。我想提取的数据是hh:mm:ss、data1和data2。 起初,我试图提取更容易使用的时间 Pattern.compile((\d{2}:\d{2}:\d{2})
我甚至可以使用 模式p1=Pattern.compile(“”;结果很好。
但是,当我尝试使用以下正则表达式获取“hh:mm:ss”时,data1和data2 Pattern p=Pattern.compile((\d{2}:\d{2}:\d{2})(.*))我没有找到匹配项。
那么,有人知道我如何在这种情况下实现我的目标吗?

如果你符合自己的模式,一切都会很好。你忘记了时间的方括号:[hh:mm:ss]。请看这里:

    String text = "22:44:55 <data quite much> data 2";
    text = text.replaceAll("(\\d{2}:\\d{2}:\\d{2}) <(.*)> (.*)", "replacement");
    System.out.println(text);
    text = "[22:44:55] <data quite much> data 2";
    text = text.replaceAll("(\\d{2}:\\d{2}:\\d{2}) <(.*)> (.*)", "replacement");
    System.out.println(text);
String text=“22:44:55数据2”;
text=text.replaceAll(\\d{2}:\\d{2}:\\d{2})(.*),“replacement”);
System.out.println(文本);
text=“[22:44:55]数据2”;
text=text.replaceAll(\\d{2}:\\d{2}:\\d{2})(.*),“replacement”);
System.out.println(文本);
这将产生:

replacement
[22:44:55] <data quite much> data 2
替换
[22:44:55]数据2
所以第一个字符串是匹配的,第二个字符串是不匹配的


您可能只需要将您的模式更改为
\[(\\d{2}:\\d{2}:\\d{2}:\\d{2})\](.*)

您可以提供一个数据示例吗?非常感谢Boris,它工作得很好。我现在可以继续编程过程了。我欠您一个