Я попытался извлечь значения, используя регулярное выражение, но когда я попытался напечатать выход это исключение появилось:Мое регулярное выражение не работает
Exception in thread "Main Thread" java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Matcher.java:468)
at TEST.main(TEST.java:21)
Это мой код:
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TEST {
/**
* @param args
*/
public static void main(String[] args) {
String string = "10/06/2013 01:45";
Pattern pattern = Pattern.compile("([0-9]{1,})/([0-9]{1,})/([0-9]{4}) ([0-9]{1,}):([0-9]{1,})");
Matcher matcher = pattern.matcher(string);
System.out.println(matcher.group(1)+"\n"+matcher.group(2)+"\n"+matcher.group(3)+"\n"+matcher.group(4)+"\n"+matcher.group(5)+"\n");
}
}
Почему этот код не работает?
Это может не потребоваться для решения вашей проблемы, но было бы полезно, если бы вы показали нам свой * ожидаемый вывод. –
Какая линия составляет 21? Пожалуйста, отметьте это. –
Похоже, вы пытаетесь совместить части даты/времени. Вы должны использовать ['DateFormat'] (http://docs.oracle.com/javase/6/docs/api/java/text/DateFormat.html) вместо того, чтобы изобретать колесо. – DannyMo