English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
java.regexКласс模式的包 является компилированным представлением регулярного выражения.
Этот классcompile()Метод принимает строку, представляющую регулярное выражение, и возвращает объект Pattern.
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CompileExample { public static void main(String args[]) { //Чтение строки Scanner sc = new Scanner(System.in); System.out.println("Введите строку ввода"); String input = sc.nextLine(); //Регулярное выражение для поиска чисел String regex = "(\\d)"; //Компилирование регулярного выражения Pattern pattern = Pattern.compile(regex); //Вывод регулярного выражения System.out.println("Скомпилированное регулярное выражение: " + pattern.toString()); //Искомый объект матчера Matcher matcher = pattern.matcher(input); //Проверка на совпадение if(matcher.find()) { System.out.println("Given String contains digits"); } else { System.out.println("Given String does not contain digits"); } } }
Результат вывода
Введите строку ввода hello my id is 1120KKA Скомпилированное регулярное выражение: (\d) Given String contains digits
Другой вариант этого метода принимает целочисленные значения, представляющие флаги, где каждый флаг specifies an optional condition, например CASE_INSENSITIVE для ignoring case при компиляции регулярного выражения.
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CompileExample { public static void main(String args[]) { //Компилирование регулярного выражения Pattern pattern = Pattern.compile("[t]", Pattern.CASE_INSENSITIVE); //Искомый объект матчера Matcher matcher = pattern.matcher("w3codebox"); int count = 0; while(matcher.find()) { count++; } System.out.println("Количество совпадений: " + count); } }
Результат вывода
Введите строку ввода w3codebox Количество совпадений: 3