Хранение обратных ссылок из выражения регулярного выражения для последующего использования

Если у меня есть,

String str = "11"; 
Pattern p = Pattern.compile("(\\d)\\1"); 
Matcher m = p.matcher(str); 

Как сохранить результат использования \1 позже? Например, я хочу сделать,

String str = "123123"; 
Pattern p = Pattern.compile("(\\d)\\1"); 
Matcher m = p.matcher(str);
String dependantString = //make this whatever was in group 1 of the pattern.

Это возможно?

1 ответ

Решение

Вам нужно сначала позвонить Matcher#find а потом Matcher#group(1) как это:

String str = "123123"; 
Pattern p = Pattern.compile("(\\d+)\\1"); 
Matcher m = p.matcher(str);
if (m.find())
    System.out.println( m.group(1) ); // 123

PS: Ваше регулярное выражение также нуждается в некоторой коррекции, чтобы использовать \\d+ вместо \\d,

Другие вопросы по тегам