Сделаем булевский метод для проверки регулярок:

public static boolean verifyRegExp(String str, String RegExp) {
Pattern p = Pattern.compile(RegExp);
Matcher m = p.matcher(str);
return m.matches();
}

где RegExp — регулярка, str — наша строка

Пример:

System.out.println("TRUE, один строчный символ " + verifyRegExp("h", "[a-z]"));
System.out.println("FALSE, т.к. строчные и прописные буквы различаютя " + verifyRegExp("H", "[a-z]"));
System.out.println("TRUE, т.к. регулярка по строчным и прописным " + verifyRegExp("h", "[a-zA-Z]"));
System.out.println("TRUE, ровно 5 букв подряд " + verifyRegExp("House", "[a-zA-Z]{5}"));
System.out.println("FALSE, требуется ровно 5 букв подряд " + verifyRegExp("Houseeeee", "[a-zA-Z]{5}"));		
System.out.println("TRUE, от 5 букв до бесконечности " + verifyRegExp("Houseeeee", "[a-zA-Z]{5,}"));		
System.out.println("TRUE, от 5 до 12 букв " + verifyRegExp("Houseeeee", "[a-zA-Z]{5,12}"));
System.out.println("TRUE, строка должна начинаться со слова \"House\"," +
	"а после содрежать латинские буквы от 2 до бесконечности " + verifyRegExp( "Househouse",  "(House)[a-zA-Z]{2,}"));
System.out.println("TRUE - точка . - любой символ " + verifyRegExp("House 7", "[a-zA-Z]{5,12}.."));
System.out.println("TRUE экранирование . - \\\\. в доменах by или ru или ua " 
        + verifyRegExp("mySite.by", "[a-zA-Z]{1,20}\\.(by|ru|ua)"));

Вывод на консоль:
TRUE, один строчный символ true
FALSE, т.к. строчные и прописные буквы различаютя false
TRUE, т.к. регулярка по строчным и прописным true
TRUE, ровно 5 букв подряд true
FALSE, требуется ровно 5 букв подряд false
TRUE, от 5 букв до бесконечности true
TRUE, от 5 до 12 букв true
TRUE, строка должна начинаться со слова «House»,а после содрежать латинские буквы от 2 до бесконечности true
TRUE — точка . — любой символ true
TRUE экранирование . — \\. в доменах by или ru или ua true

Реклама