English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
текстиз java.util.regex.Matcherкласс представляет собой движок, выполняющий различные операции соответствия. Этот класс не имеет конструктора, его можно использоватьmatches()
класс java.util.regex.Pattern создает/получает объект этого класса.
двасоответствовать()иобнаружить()попытке класса Matcher найти соответствие с помощью регулярного выражения в вводе. Если есть соответствие, то оба метода возвращают true, если не найти соответствие, то оба метода возвращают false.
Основное различие заключается в томmatches()
Метод пытается соответствовать всему диапазону ввода, то есть, если вы пытаетесь найти цифру в строке, то этот метод возвращает true только если ввод содержит цифры во всех строках.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String regex = "(.*)(\\d+)(.*)"; String input = "This is a sample Text, 1234, with numbers in between."; + "\n This is the second line in the text" + "\n This is third line in the text" //Создание объекта шаблона Pattern pattern = Pattern.compile(regex); //Создание объекта Matcher Matcher matcher = pattern.matcher(input); if(matcher.matches()) { System.out.println("Найдено совпадение"); } System.out.println("Не найдено совпадение"); } } }
Вывести результат
не найти соответствие
а этоfind()
Метод пытается найти следующий подстроку, соответствующую шаблону, то есть, если в этой области найден хотя бы один соответствующий элемент, то этот метод возвращает true.
Если посмотрите на следующий пример, то мы пытаемся соответствовать определенной строке с числом в середине.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String regex = "(.*)(\\d+)(.*)"; String input = "This is a sample Text, 1234, with numbers in between."; + "\n This is the second line in the text" + "\n This is third line in the text" //Создание объекта шаблона Pattern pattern = Pattern.compile(regex); //Создание объекта Matcher Matcher matcher = pattern.matcher(input); //System.out.println("Текущий диапазон: "+input.substring(regStart, regEnd)); if(matcher.find()) { System.out.println("Найдено совпадение"); } System.out.println("Не найдено совпадение"); } } }
Вывести результат
Найти совпадение