2016-04-23 2 views
1

Я попытался получить эти даты 22-APR-16 11.00.00.000000 и 22-APR-16 10.30.00.000000. Мои коды есть, но он не может найти, как я могу это сделать?Java Поиск строки регулярное выражение

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); 
} 

ответ

0

ПОЦЕЛУЙ

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. Каждый четный элемент будет дата начала и нечетный элемент будет конечной датой

+0

большое вам спасибо @ rock321987 – little

+0

@little you are welcome – rock321987

Смежные вопросы