Я определяю выражение java для своего шаблона, но оно не работает.Явное выражение для встроенного параметра
Вот текст, который я хочу, чтобы определить шаблон для:
"sometext {10} some text {25} sometext".
Именованные параметры {10}, {25},
....
Я использовал шаблон, как это: «({\ d +}) * "но это не работает, и я получил исключение:
Caused by: java.util.regex.PatternSyntaxException: Illegal repetition near index 0
({\d+})*
Вот код, у меня есть:
public static final Pattern pattern = Pattern.compile("({\\d+})*");
public static void main(String[] args) {
String s = "{10}ABC{2}";
Matcher matcher = pattern .matcher(s);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
}
Может кто-нибудь объяснить, что я здесь не так? Благодарю.
Я использовал «\\ {\\ d + \\}», но это не сработало. Можете ли вы показать мне образец? –
@Luu см. Мое редактирование. Если вы удалите скобку, вы не можете ссылаться на группу 1, только ссылочную группу 0 на метод 'Matcher.group()'. – Mena
Теперь он работает. Если я использовал m.group (1), он выдает исключение, но если group(), он работает. Благодарю. Я принимаю ваше решение. –