这是我的字符串
2007-01-12Jakistxt2008-01-31xxx2008-02-292008-15-102008-19-452009-05-0120999-11-11pppp2001-00-0109-01-012001-01-002009-01-1112009-02 -291998-11-11
我尝试以YYYY-MM-DD
格式查找日期。我知道这是不可能的。
我设法打印了此结果
2007-01-12
2008-01-31
2008-02-292
2008-19-452
0999-11-11
2001-00-010
2001-01-002
2009-02-291
String regex4="\\d{4}-\\d{2}-\\d{2,3}";
Pattern wzor4=Pattern.compile(regex4);
Pattern wzor5=Pattern.compile(regex5);
Matcher efekt4=wzor4.matcher(wyrazenie);
String rezultat4="";
while (efekt4.find()) {
list422.add(efekt4.group());
}
for(int i=0;i<list422.size();i++) System.out.println(list422.get(i));`
答案 0 :(得分:0)
尝试以下模式:(?(?<=^)|(?<=\D))\d{4}-\d{2}-\d{2}(?(?=$)|(?=\D))
。
它使用\d{4}-\d{2}-\d{2}
来匹配您的strng格式。
此外,日期不能在任何数字后面或前面:
(?(?<=^)|(?<=\D))
-有条件的查找:如果我们在字符串的开头,则开始匹配,否则,请确保前面的不是数字(\D
)>
(?(?=$)|(?=\D))
-前向类似于后向。
或者,您可以只使用\d{4}-\d{2}-\d{2}
,它们也可以彼此相邻匹配。
答案 1 :(得分:0)
我把它放在String regex4="(?(?<=^)|(?<=\D))\d{4}-\d{2}-\d{2}(?(?=$)|(?=\D))";
和Eclipse说
Unknown inline modifier near index 2
(?(?<= ^)|(?<= \ D))\ d {4}-\ d {2}-\ d {2}(?(?= $)|(?= \ D )) ^