gpt4 book ai didi

java - 正则表达式匹配单词和行尾之间的日期时间?

转载 作者:行者123 更新时间:2023-12-02 11:28:34 26 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式模式匹配器,以从原始 http header 响应中的上次修改日期和日期中提取日期。我正在使用缓冲阅读器读取标题,然后逐行浏览以查找所需的信息。我遇到麻烦的两个是

Date: Mon, 27 Jul 2009 12:28:53 GMT
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT

我希望从表示该行的字符串中提取日期时间,但我似乎找不到有效的正则表达式:/预期的输出应该类似于

27 Jul 2009 12:28:53 GMT

我正在尝试这个,但它不起作用

(?<=Date:\s).*(?=\n)

干杯科里

最佳答案

你可以尝试一下:

(?<=(Last\\-Modified|Date):\\s(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)(.+)

在您的示例输入输出中,您没有匹配日期,我认为这是故意的,而不是拼写错误。

试用 at this link .

正则表达式-

(?<=(Last\\-Modified|Date):\\s(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)是一个积极的后视,以确保匹配之前是 Date:Last-Modified:和一天

(Last\\-Modified|Date):检查 Date: 是否存在或Last-Modified:

\\s是一个空格

(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s是任何一天的非捕获组,后跟逗号和空格。请注意,我仅添加了此内容,因为根据问题,必须排除天数,如果您确实想获取它们,只需删除正则表达式 as shown here 的这一部分即可。 .

(.+)匹配一个或多个字符,这是问题中所需的实际日期。

Here's a cheat sheet for regex conventions ,如果您需要的话。

实现如下:

String regex = "(?<=(Last\\-Modified|Date):\\s(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)(.+)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(YourString);
while(m.find())
{
String date = m.group();
}

关于java - 正则表达式匹配单词和行尾之间的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49448649/

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