我想从java string中找到日期。但我无法做到这一点请帮助
String : 01-02-2014 <2>
Ineed output like :01-02-2014
我的代码:
public String rejex(String idate){
String result = null;
try{
String regex = "([1-9]|[012][0-9]|3[01])[-/]\\s*(0[1-9]|1[012])[-/]\\s*((19|20)?[0-9]{2})";
result = idate.replaceAll(regex, "$1-$2-$3");
}catch(Exception e){}
return result;
}
答案 0 :(得分:2)
你正在用自己替换你所追求的(日期段)。
如果你想提取它,这将有效:
String regex = "(([1-9]|[012][0-9]|3[01])[-/]\\s*(0[1-9]|1[012])[-/]\\s*((19|20)?[0-9]{2})).*?<(\\d+)>";
String str = "This is a random string 01-02-2014 <123> this is another part of that random string";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
while(m.find())
{
System.out.println("Date: " + m.group(1));
System.out.println("Number: " + m.group(6));
}
收率:
Date: 01-02-2014
Number: 123
答案 1 :(得分:0)
只提取\\d\\d-\\d\\d-\\d{4}
,让SimpleDateFormat
执行解析工作。
答案 2 :(得分:0)
如果空间一直存在那么它很简单。
String dateStr = "01-02-2014 <2>"
String dateSplit[] = dateStr.split(" ");
//dateSplit[0] is what u are looking for
或
String dateStr = "01-02-2014 <2>"
String dateSplit[] = dateStr.split("<");
//dateSplit[0].trim() is what u are looking for
然后只需使用SimpleDateFormat将其转换为Date。