У меня есть строка, которая является чем-то вроде этого:Regexp соответствия в группе со специальными символами
A20130122.0000+0000-0015+0000_name
Тогда я хотел бы, чтобы извлечь эту информацию:
The 20130122.0000+0000-0015+0000
, который будет анализироваться на сегодняшний день позже на. И окончательная часть, которая является name
.
Так я использую в Java что-то вроде этого:
String regexpOfdate = "[0-9]{8}\\.[0-9]{4}\\+[0-9]{4}-[0-9]{4}\\+[0-9]{4}";
String regexpOfName = "\\w+";
Pattern p = Pattern.compile(String.format("A(%s)_(%s)", regexpOfdate, regexpOfName));
Matcher m = p.matcher(theString);
String date = m.group(0);
String name = m.group(1);
Но я получаю java.lang.IllegalStateException: No match found
Знаете ли вы, что я делаю неправильно?
Спасибо, но он работает с использованием этой 'String date = m.group (1); Строковое имя = m.group (2); ' – Manuelarte
Да, это правильно, я просто скопировал этот фрагмент из OP. – anubhava
Если это сработало, не забудьте отметить ответ как принятый. – anubhava