Я разработал пользовательский интерфейс, который позволяет пользователям определять шаблон регулярных выражений, а затем строку замены, которая используется appendReplacement()
.
, например
- Шаблон - 7 (. *)
- Заменить шаблон - $ 1
Так что 71234 даст 1234.
Могу ли я в любом случае убедиться, что шаблон ввода и шаблон замены совместимы без необходимости ввода соответствующей строки пользователем? Например, если шаблон замены был $1$2
, это вызвало бы исключение во время выполнения. Могу ли я проверить это заранее?
EDIT:
Окончательное решение состояло в том, чтобы сделать, как предложил aioobe, и получить количество групп, создав фиктивный Matcher (не уверен, почему этот метод не используется в Pattern TBH), а затем вручную проанализировал строку замены, чтобы определить, какие ссылки $ group присутствуют , Немного неудобно, но работает.