这是我之前问过的一个问题的延续。我需要提取日期模式,它由字符串String1,String2,String3 String4包围。我所做的是Java正则表达式模式,被多个字符串包围
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之间。我很确定有什么问题,因为我的程序出现错误,提示无效的转义序列,但我无法弄清楚。任何帮助表示赞赏。提前致谢。
这是唯一的缺陷?好吧现在就试试。 – newtoprogramming
+1'\ s'不是有效的* java *转义序列。你正在编码一个* java *字符串文字,所以你需要双反斜杠'\\ s'来编码*正则表达式*'\ s' – Bohemian
好吧,我纠正了这一点,但它似乎仍然不起作用。程序运行时会产生错误。有人能告诉我如何提取日期模式以及字符串。字符串是特定的,因此不需要任何模式。 – newtoprogramming