Хранение обратных ссылок из выражения регулярного выражения для последующего использования
Если у меня есть,
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
,