2015-12-10 2 views
-5

У меня есть строка, которую мне нужно разделить и получить значение production_date, поэтому в этом примере мне нужны «2013-01-01» и «2014-01-01».java regex split string using regex

Это может быть или не всегда быть в этой колонке, но любые предложения о том, каким будет лучший способ?

where filter_2_id = 20001 and acceptable_flag is true and production_date >= '2013-01-01' AND production_date <= '2014-01-01' AND filter_2_id IN (20000, 20001) AND filter_1_id IN (10000) order by tr.test_result_id ASC 
+1

Написать регулярное выражение, которое соответствует дате, а также использовать '.match()', чтобы найти все матчей. С какой частью этого вы столкнулись? Пожалуйста, покажите, что вы попробовали, чтобы мы могли помочь вам исправить это. – Barmar

+0

Я действительно не очень хорошо знаком с написанием выражений - я еще ничего не писал. – Buccaneer

+3

Затем вы должны прочитать учебное пособие, подобное тому, которое находится на regular-expression.info. SO не является заменой для обучения программированию. – Barmar

ответ

1

Это будет работать для вас:

String s = "where filter_2_id = 20001 and acceptable_flag is true and production_date >= '2013-01-01' AND production_date <= '2014-01-01' AND filter_2_id IN (20000, 20001) AND filter_1_id IN (10000) order by tr.test_result_id ASC"; 
    Pattern p = Pattern.compile("\\d{4}\\-\\d{1,2}-\\d{1,2}"); 
    Matcher m = p.matcher(s); 
    while(m.find()) { 
     System.out.println(m.group()); 
    } 

O/P:

2013-01-01 
2014-01-01