gpt4 book ai didi

Java正则表达式模式,由多个字符串包围

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

这是我之前提出的问题的延续。我需要提取一个日期模式,该模式由字符串 String1、String2、String3 String4 包围。我所做的是

Pattern pattern = Pattern.compile("(?<=String1\sString2\s(?:0?[1-9]|[12][0-9]|3[01])([- /.])(?:0?[1-9]|1[012])\\1(?:19|20)?\\d\\d?=\sString3\sString4)");

我的日期模式是

(0?[1-9]|[12][0-9]|3[01])([- /.])(0?[1-9]|1[012])\\2(19|20)\\d\\d

工作正常,但是当尝试用字符串包围它时,我遇到了麻烦。

日期位于 String2 和 String3 之间。我很确定有问题,因为我的程序有一个错误,指出转义序列无效,但我无法弄清楚。任何帮助表示赞赏。提前致谢。

最佳答案

这里有一个无效的转义序列:

"...(?<=String1\sString..."
^^

您必须转义 java 字符串中的反斜杠文字,才能将其传递到正则表达式模式:

"...(?<=String1\\sString..."
^^^

您已经正确地使用了表示数字的 \\d,但使用了表示空格的 \\s

关于Java正则表达式模式,由多个字符串包围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18060553/

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