gpt4 book ai didi

java - 正则表达式在java中的两个表达式之间提取字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:28 26 4
gpt4 key购买 nike

我有一个包含已发送和已接收消息的日志文件。我想使用正则表达式提取这些消息。这是日志文件的示例:

Message recieved:0908082349234 Session: ...
A message is sent: 12344384834

我编写了以下正则表达式来提取消息:

String pattern = "((A message is sent: )|(Message received:))(.*)(( Session:)|$)";

而且它不起作用。我尝试了许多不同的形式,但都没有奏效。我想用一个正则表达式来做到这一点。现在我使用一个正则表达式发送,另一个正则表达式接收。但是应该有一种方法可以对它们都使用一个正则表达式!

最佳答案

.* 贪婪匹配。使用非贪婪版本(.*?):

String pattern = "(A message is sent: |Message received:)(.*?)( Session:|$)";

顺便说一句,给定的日志文件包含错字。如果日志文件确实包含拼写错误,您应该相应地调整正则表达式。

Message recieved:0908082349234 Session: ...
^^

关于java - 正则表达式在java中的两个表达式之间提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20771679/

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