gpt4 book ai didi

Java 正则表达式模式将日期格式拉至第一个正斜杠

转载 作者:行者123 更新时间:2023-12-02 09:24:17 25 4
gpt4 key购买 nike

我正在尝试改进当前的正则表达式,以匹配网址中的日期模式。这是我所拥有的:

.*([0-9]{4}-[0-9]{2}-.*)

使用 url 示例,例如:

www.mywebsite.com/2019-10-10-00-00-00/someString/

此正则表达式符合预期 2019-10-10-00-00-00/someString/

但是,我想要的是将其改进为仅匹配 2019-10-10-00-00-00

到目前为止我已经尝试过:.*([0-9]{4}-[0-9]{2}-[^\\\\/]*),

按照另一篇 SO 帖子中的建议转义正斜杠两次(我也尝试过单次转义)。我不是 Java 专家,所以我使用 Java 特定的正则表达式测试器对其进行了测试 here它工作正常,但在代码中,它根本不匹配。

我也试图避免使用类似的东西

.*([0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9] {2}-[0-9]{2})

主要是因为日期可能是2019-10-10-00-00-002019-10-10-00-002019- 10-10-00 或其他什么,因为肯定有更好的方法。

任何建议都会很棒,或者如果这是这里众多正则表达式问题之一的重复,我很乐意关闭并链接。

最佳答案

正斜杠不是正则表达式元字符,因此不需要任何转义。对于单行解决方案,请使用 String#replaceAll:

String url = "www.mywebsite.com/2019-10-10-00-00-00/someString/";
String date = url.replaceAll(".*/(\\d{4}-\\d{2}-\\d{2}-[^/]+).*", "$1");
System.out.println("date: " + date);

打印:

date: 2019-10-10-00-00-00

关于Java 正则表达式模式将日期格式拉至第一个正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58443159/

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