Java查找字符串正则表达式

时间:2016-04-23 11:00:22

标签: java regex

我试图将这些日期 22-APR-16 11.00.00.000000 22-APR-16 10.30.00.000000 。 我的代码在那里,但它无法找到,我该怎么办?

String pattern = "(Başlangıç Tarihi:\\s+)([0-9/:]+\\s+[0-9:]+)(.*)\\s+(Bitiş Tarihi:\\s+)([0-9/:]+\\s+[0-9:]+)(.*)";
Pattern r = Pattern.compile(pattern);

String text = "Başlangıç Tarihi:   22-APR-16 11.00.00.000000 AM  Bitiş Tarihi:   22-APR-16 10.30.00.000000 PM";
Matcher m = r.matcher(text);

if(m.find())
{
    String startDate = m.group(2);
    String endDate = m.group(5);

    System.out.println("Start Date : " + startDate);
    System.out.println("End Date : " + endDate);
}

1 个答案:

答案 0 :(得分:0)

KISS

String pattern = "(Başlangıç Tarihi:\\s+)(\\d+-[A-Za-z]+-\\d+\\s[\\d.]+)(.*)\\s+(Bitiş Tarihi:\\s+)(\\d+-[A-Za-z]+-\\d+\\s[\\d.]+)";

<强> Ideone Demo

此外,你可以使用

(\\d+-[A-Za-z]+-\\d+\\s[\\d.]+)

使用循环查找所有匹配项并将其存储为数组或arraylist。每个偶数元素都是开始日期,奇数元素将是结束日期