Пожалуйста, учтите, что спецификации и другая информация, содержащаяся здесь, не являются заключительными и могут быть изменены. Информация доступна для вас исключительно ради ознакомления.
matcher создается из образца, вызывая образец matcher метод. После того, как создаваемый, matcher может использоваться, чтобы выполнить три различных видов операций соответствия:
matches метод пытается соответствовать всю входную последовательность против образца.
lookingAt метод пытается соответствовать входную последовательность, запускаясь вначале, против образца.
find метод сканирует входную последовательность, ища следующую подпоследовательность, которая соответствует образец.
Каждый из этих методов возвращает булев успех или провал указания. Больше информации об успешном соответствии может быть получено, запрашивая состояние matcher.
matcher считает соответствия в подмножестве его ввода названными областью. По умолчанию область содержит весь ввод matcher. Область может быть изменена черезregion метод и запрошенный через regionStart и regionEnd методы. Способ, которым границы области взаимодействуют с некоторыми конструкциями образца, может быть изменен. См. useAnchoringBounds и useTransparentBounds для большего количества деталей.
Этот class также определяет методы для того, чтобы заменить соответствующие подпоследовательности новыми строками, содержание которых может, при желании, быть вычислено от результата соответствия. appendReplacement и appendTail методы могут использоваться в тандеме, чтобы собрать результат в существующий строковый буфер, или более удобное replaceAll метод может использоваться, чтобы создать строку, в которой заменяется каждая подпоследовательность соответствия во входной последовательности.
Явное состояние matcher включает запуск и индексы конца нового успешного соответствия. Это также включает запуск и индексы конца входной подпоследовательности, полученной каждой группой фиксации в образце так же как полном количестве таких подпоследовательностей. Как удобство, методы также обеспечиваются для того, чтобы они возвратили эти полученные подпоследовательности в строковой форме.
Явное состояние matcher первоначально неопределено; пытаясь запросить любую часть этого прежде, чем успешное соответствие вызовет IllegalStateException быть брошенным. Явное состояние matcher повторно вычисляется каждой работой соответствия.
Неявное состояние matcher включает входную последовательность символа так же как добавлять позицию, которая является первоначально нулем и обновляется appendReplacement метод.
matcher может быть сброшен явно, вызывая reset() метод или, если новая входная последовательность требуется, reset(CharSequence) метод. Сброс matcher отбрасывает свою явную информацию о состоянии и устанавливает добавлять позицию, чтобы обнулить.
Экземпляры этого class не безопасны для использования многократными параллельными потоками.
Возвращает смещение после последнего знака подпоследовательности, полученной данной именованной группой фиксации во время предыдущей работы соответствия.
Сбросы этот matcher и затем пытается найти следующую подпоследовательность входной последовательности, которая соответствует образец, запускающийся в указанном, индексируют.
Изменяет Pattern что этот Matcher использование, чтобы найти соответствия с.
Этот метод заставляет этот matcher терять информацию о группах последнего соответствия, которое произошло. Позиция matcher во вводе сохраняется, и ее последние добавляют позицию, незатронуто.
Параметры:
newPattern - Новый образец используется этим matcher
Сброс matcher отбрасывает всю свою явную информацию о состоянии и устанавливает его добавлять позицию, чтобы обнулить. Область matcher устанавливается в область значения по умолчанию, которая является ее всей символьной последовательностью. Привязка и прозрачность границ области этого matcher незатронуты.
Сбросы этот matcher с новой входной последовательностью.
Сброс matcher отбрасывает всю свою явную информацию о состоянии и устанавливает его добавлять позицию, чтобы обнулить. Область matcher устанавливается в область значения по умолчанию, которая является ее всей символьной последовательностью. Привязка и прозрачность границ области этого matcher незатронуты.
Параметры:
input - Новая входная последовательность символа
Возвраты:
Этот matcher
запустить
public int start()
Возвращается запуск индексируют предыдущего соответствия.
IllegalStateException - Если никакое соответствие еще не было предпринято, или если предыдущая отказавшая работа соответствия
запустить
public int start(int group)
Возвращается запуск индексируют подпоследовательности, полученной данной группой во время предыдущей работы соответствия.
Группы фиксации индексируются слева направо, запускаясь в одном. Групповой нуль обозначает весь образец, таким образом, выражение м.start(0) эквивалентно м.start().
IllegalStateException - Если никакое соответствие еще не было предпринято, или если предыдущая отказавшая работа соответствия
конец
public int end(int group)
Возвращает смещение после последнего знака подпоследовательности, полученной данной группой во время предыдущей работы соответствия.
Группы фиксации индексируются слева направо, запускаясь в одном. Групповой нуль обозначает весь образец, таким образом, выражение м.end(0) эквивалентно м.end().
Возвращает смещение после последнего знака подпоследовательности, полученной данной именованной группой фиксации во время предыдущей работы соответствия.
Параметры:
name - Имя именованной группы фиксации в образце этого matcher
Возвраты:
Смещение после последнего знака, полученного группой, или -1 если соответствие было успешно, но сама группа ничего не соответствовала
Броски:
IllegalStateException - Если никакое соответствие еще не было предпринято, или если предыдущая отказавшая работа соответствия
Для matcher м. с входной последовательностью s, выражения м.group() и s.substring(м.start(),м.end()) эквивалентен.
Отметьте, что некоторые образцы, например a*, соответствуют пустую строку. Этот метод возвратит пустую строку, когда образец успешно будет соответствовать пустую строку во вводе.
Возвращает входную подпоследовательность, полученную данной группой во время предыдущей работы соответствия.
Для matcher м. входная последовательность s, и группа индексируют г, выражения м.group(g) и s.substring(м.start(g),м.end(g)) эквивалентен.
Группы фиксации индексируются слева направо, запускаясь в одном. Групповой нуль обозначает весь образец, таким образом, выражение m.group(0) эквивалентно m.group().
Если соответствие было успешно, но определенная группа была не в состоянии соответствовать любую часть входной последовательности, то null возвращается. Отметьте, что некоторые группы, например (a*), соответствуют пустую строку. Этот метод возвратит пустую строку, когда такая группа успешно будет соответствовать пустую строку во вводе.
group - Индексирование группы фиксации в образце этого matcher
Возвраты:
(Возможно пустой) подпоследовательность, полученная группой во время предыдущего соответствия, или null, если группа была не в состоянии соответствовать часть ввода
Броски:
IllegalStateException - Если никакое соответствие еще не было предпринято, или если предыдущая отказавшая работа соответствия
Если соответствие было успешно, но определенная группа была не в состоянии соответствовать любую часть входной последовательности, то null возвращается. Отметьте, что некоторые группы, например (a*), соответствуют пустую строку. Этот метод возвратит пустую строку, когда такая группа успешно будет соответствовать пустую строку во вводе.
Параметры:
name - Имя именованной группы фиксации в образце этого matcher
Возвраты:
(Возможно пустой) подпоследовательность, полученная именованной группой во время предыдущего соответствия, или null, если группа была не в состоянии соответствовать часть ввода
Броски:
IllegalStateException - Если никакое соответствие еще не было предпринято, или если предыдущая отказавшая работа соответствия
Возвращает число групп фиксации в образце этого matcher.
Групповой нуль обозначает весь образец условно. Это не включается в это количество.
Любое неотрицательное целое число, меньшее чем или равный значению, возвращенному этим методом, как гарантируют, будет допустимой группой, индексируют для этого matcher.
Попытки соответствовать всю область против образца.
Если соответствие успешно выполняется тогда, больше информации может быть получено через start, end, и методы group.
Возвраты:
true, если, и только если, вся последовательность области соответствует образец этого matcher
найти
public boolean find()
Попытки найти следующую подпоследовательность входной последовательности, которая соответствует образец.
Этот метод запускается в начале области этого matcher, или, если предыдущий вызов метода был успешен, и matcher не был с тех пор сброшен в первом символе, не соответствующем предыдущим соответствием.
Если соответствие успешно выполняется тогда, больше информации может быть получено через start, end, и методы group.
Возвраты:
true, если, и только если, подпоследовательность входной последовательности соответствует образец этого matcher
найти
public boolean find(int start)
Сбросы этот matcher и затем пытается найти следующую подпоследовательность входной последовательности, которая соответствует образец, запускающийся в указанном, индексируют.
Если соответствие успешно выполняется тогда, больше информации может быть получено через start, end, и методы group, и последующие вызовы find() метод запустится в первом символе, не соответствующем этим соответствием.
Возвраты:
true, если, и только если, подпоследовательность входной последовательности, запускающейся в данном, индексирует соответствия образец этого matcher
Броски:
IndexOutOfBoundsException - Если запуск является меньше чем нуль или если запуск больше чем длина входной последовательности.
lookingAt
public boolean lookingAt()
Попытки соответствовать входную последовательность, запускающуюся в начале области, против образца.
Как matches метод, этот метод всегда запускается в начале области; в отличие от того метода, это не требует, чтобы вся область была соответствующей.
Если соответствие успешно выполняется тогда, больше информации может быть получено через start, end, и методы group.
Возвраты:
true, если, и только если, префикс входной последовательности соответствует образец этого matcher
Возвращает литеральную замену String для указанного String. Этот метод производит a String это будет работать литеральной заменой s в appendReplacement метод Matcher class. String произведенный будет соответствовать последовательность символов в s обработанный как литеральная последовательность. Наклонным чертам (' \') и знаки доллара (' $ ') не дадут особого значения.
Это читает символы из входной последовательности, запускающейся в добавлять позиции, и добавляет их к данному строковому буферу. Это останавливается после чтения последнего знака, предшествующего предыдущему соответствию, то есть, символ в индексируют start()-1.
Это добавляет данную заменяющую строку к строковому буферу.
Это устанавливает добавлять позицию этого matcher к индексированию соответствующего последнего знака, плюс один, то есть, к end().
Заменяющая строка может содержать ссылки на подпоследовательности, полученные во время предыдущего соответствия: Каждое возникновение ${name} или г$ будет заменено результатом оценки соответствия group(name) или group(g) соответственно. Для г$первое число после того, как $ всегда обрабатывается как часть групповой ссылки. Последующие числа включаются в г, если они сформировали бы юридическую групповую ссылку. Только цифры '0' до '9' рассматривают как потенциальные компоненты групповой ссылки. Если вторая группа, соответствующая строка "foo", например, то передача замены представляет в виде строки "$2bar", заставила бы "foobar" быть добавленным к строковому буферу. Знак доллара ($) может быть включен как литерал в заменяющей строке, предшествуя этому с наклонной чертой влево (\$).
Отметьте, что наклонные черты влево (\) и знаки доллара ($) в заменяющей строке могут вызвать результаты отличаться, чем если бы это обрабатывалось как литеральная заменяющая строка. Знаки доллара могут быть обработаны как ссылки на полученные подпоследовательности как описано выше, и наклонные черты влево используются, чтобы выйти из литеральных символов в заменяющей строке.
Этот метод предназначается, чтобы использоваться в цикле вместе с appendTail и find методы. Следующий код, например, пишет one dog two dogs in the yard в поток стандартного вывода:
Pattern p = Pattern.compile("cat");
Matcher m = p.matcher("one cat two cats in the yard");
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "dog");
}
m.appendTail(sb);
System.out.println(sb.toString());
Параметры:
sb - Целевой строковый буфер
replacement - Заменяющая строка
Возвраты:
Этот matcher
Броски:
IllegalStateException - Если никакое соответствие еще не было предпринято, или если предыдущая отказавшая работа соответствия
IllegalArgumentException - Если заменяющая строка обращается к именованной группе фиксации, которая не существует в образце
IndexOutOfBoundsException - Если заменяющая строка обращается к группе фиксации, которая не существует в образце
Этот метод читает символы из входной последовательности, запускающейся в добавлять позиции, и добавляет их к данному строковому буферу. Это предназначается, чтобы быть вызванным после одного или более вызовов appendReplacement метод, чтобы скопировать остаток от входной последовательности.
Заменяет каждую подпоследовательность входной последовательности, которая соответствует образец с данной заменяющей строкой.
Этот метод первые сбросы этот matcher. Это тогда сканирует входную последовательность, ища соответствия образца. Символы, которые не являются частью любого соответствия, добавляются непосредственно к строке результата; каждое соответствие заменяется в результате заменяющей строкой. Заменяющая строка может содержать ссылки на полученные подпоследовательности как в appendReplacement метод.
Отметьте, что наклонные черты влево (\) и знаки доллара ($) в заменяющей строке могут вызвать результаты отличаться, чем если бы это обрабатывалось как литеральная заменяющая строка. Знаки доллара могут быть обработаны как ссылки на полученные подпоследовательности как описано выше, и наклонные черты влево используются, чтобы выйти из литеральных символов в заменяющей строке.
Учитывая регулярное выражение a*b, ввод "aabfooaabfooabfoob", и замена представляют в виде строки "-", вызов этого метода на matcher для того выражения привел бы к строке "-foo-foo-foo-".
Вызов этого метода изменяет состояние этого matcher. Если matcher должен использоваться в дальнейших операциях соответствия тогда, он должен сначала быть сброшен.
Заменяет первую подпоследовательность входной последовательности, которая соответствует образец с данной заменяющей строкой.
Этот метод первые сбросы этот matcher. Это тогда сканирует входную последовательность, ища соответствие образца. Символы, которые не являются частью соответствия, добавляются непосредственно к строке результата; соответствие заменяется в результате заменяющей строкой. Заменяющая строка может содержать ссылки на полученные подпоследовательности как в appendReplacement метод.
Отметьте, что наклонные черты влево (\) и знаки доллара ($) в заменяющей строке могут вызвать результаты отличаться, чем если бы это обрабатывалось как литеральная заменяющая строка. Знаки доллара могут быть обработаны как ссылки на полученные подпоследовательности как описано выше, и наклонные черты влево используются, чтобы выйти из литеральных символов в заменяющей строке.
Учитывая регулярное выражение dog, ввод "zzzdogzzzdogzzz", и замена представляют в виде строки "cat", вызов этого метода на matcher для того выражения привел бы к строке "zzzcatzzzdogzzz".
Вызов этого метода изменяет состояние этого matcher. Если matcher должен использоваться в дальнейших операциях соответствия тогда, он должен сначала быть сброшен.
Параметры:
replacement - Заменяющая строка
Возвраты:
Строка, созданная, заменяя первую подпоследовательность соответствия заменяющей строкой, заменяя полученными подпоследовательностями как необходимый
Устанавливает пределы области этого matcher. Область является частью входной последовательности, которая будет искаться, чтобы найти соответствие. Вызов этого метода сбрасывает matcher, и затем устанавливает область, чтобы запуститься при индексировании указанного start параметр и конец при индексировании указанного end параметр.
В зависимости от прозрачности и привязывающий используемый (см. useTransparentBounds и useAnchoringBounds), определенные конструкции, такие как привязки могут вести себя по-другому в или вокруг границ области.
Параметры:
start - Индексирование, чтобы начать искать во (включительно)
end - Индексирование, чтобы закончить поиск в (монопольном)
Возвраты:
этот matcher
Броски:
IndexOutOfBoundsException - Если запускаются, или конец является меньше чем нуль, если запуск больше чем длина входной последовательности, если конец больше чем длина входной последовательности, или если запуск больше чем конец.
С тех пор:
1.5
regionStart
public int regionStart()
Сообщает, что запуск индексирует области этого matcher. Поискы, которые проводит этот matcher, ограничиваются обнаружением соответствий в пределах regionStart (включительно) и regionEnd (монопольный).
Возвраты:
Начальная точка области этого matcher
С тех пор:
1.5
regionEnd
public int regionEnd()
Сообщает, что конец индексирует (монопольный) из области этого matcher. Поискы, которые проводит этот matcher, ограничиваются обнаружением соответствий в пределах regionStart (включительно) и regionEnd (монопольный).
Возвраты:
конечная точка области этого matcher
С тех пор:
1.5
hasTransparentBounds
public boolean hasTransparentBounds()
Запрашивает прозрачность границ области для этого matcher.
Этот метод возвращает true, если этот matcher использует прозрачные границы, false, если это использует непрозрачные границы.
Устанавливает прозрачность границ области для этого matcher.
Вызов этого метода с параметром true установит этот matcher, чтобы использовать прозрачные границы. Если булевым параметром будет false, то непрозрачные границы будут использоваться.
Используя прозрачные границы, границы области этого matcher прозрачны к предвидению, lookbehind, и граничным конструкциям соответствия. Те конструкции могут видеть вне границ области, чтобы видеть, является ли соответствие соответствующим.
Используя непрозрачные границы, границы области этого matcher непрозрачны к предвидению, lookbehind, и граничным конструкциям соответствия, которые могут попытаться видеть вне их. Те конструкции не могут смотреть мимо границ, таким образом, они будут не в состоянии соответствовать что-либо за пределами области.
По умолчанию matcher использует непрозрачные границы.
Параметры:
b - булево указание, использовать ли непрозрачные или прозрачные области
Устанавливает привязку границ области для этого matcher.
Вызов этого метода с параметром true установит этот matcher, чтобы использовать границы привязки. Если булевым параметром будет false, то непривязка границ будет использоваться.
Используя привязку границ, границы области этого matcher соответствуют привязки, такие как ^ и $.
Не привязывая границы, границы области этого matcher не будут соответствовать привязки, такие как ^ и $.
По умолчанию matcher использует границы области привязки.
Параметры:
b - булево указание, использовать ли границы привязки.
Возвращает строковое представление этого matcher. Строковое представление a Matcher содержит информацию, которая может быть полезной для отладки. Точный формат является неуказанным.
Возвращает true, если конец ввода был поражен поисковой системой в последней работе соответствия, выполняемой этим matcher.
Когда этот метод возвращает true, тогда возможно, что более ввод изменил бы результат последнего поиска.
Возвраты:
истинная эквивалентность конец ввода была поражена в последнем соответствии; ложь иначе
С тех пор:
1.5
requireEnd
public boolean requireEnd()
Возвращает true, если более ввод мог бы изменить положительное соответствие в отрицательный.
Если этот метод возвращает true, и соответствие было найдено, то более ввод мог заставить соответствие быть потерянным. Если этот метод возвращает false, и соответствие было найдено, то более ввод мог бы изменить соответствие, но соответствие не будет потеряно. Если соответствие не было найдено, то у requireEnd нет никакого значения.
Возвраты:
истинная эквивалентность более ввод могла изменить положительное соответствие в отрицательный.