Если у вас есть указанный шаблон c, который может повторяться один или несколько раз в строке, и вы хотите убедиться, что ваша строка состоит только из повторных вхождений одного и того же шаблона, вы можете использовать
^(?:YOUR_PATTERN)+$
\A(?:YOUR_PATTERN)+\z
Обратите внимание, что $
также соответствует перед окончательным символом новой строки, поэтому якорь \z
предпочтителен, когда вам нужно соответствовать самый конец строки.
Если вы разрешите пустую строку, используйте квантификатор *
вместо +
:
^(?:YOUR_PATTERN)*$
\A(?:YOUR_PATTERN)*\z
В этом случае YOUR_PATTERN
равен \(\d+,\d+\)
, таким образом, повторяется шаблон проверки последовательности будет \A(?:\(\d+,\d+\))+\z
.
. В Java вы можете опустить привязки ^
/ $
и \A
/ \z
при проверке строки с помощью метода .matches()
, поскольку для этого требуется полное совпадение строки:
boolean isValid = text.matches("(?:\\(\\d+,\\d+\\))+");
Или сначала выполните декальцирование экземпляра класса Pattern
, а затем создайте сопоставление со строкой в качестве ввода и выполните Matcher#matches()
Pattern p = Pattern.compile("(?:\\(\\d+,\\d+\\))+");
Matcher m = p.matcher(text);
if (m.matches()) {
// The text is valid!
}