Все возможности регулярных выражений Java
import java.sql.SQLOutput;
import java.util.Arrays;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Regexps {
public static void main(String[] args) {
//регулярные выражения в Java
//1) разделить строку на части
// \\s это интерпретируется как java строка \s
String[] s = "a, b, c, d, e,f".split(",\\s*");
//System.out.println(Arrays.toString(s));
for (String word : s)
System.out.println("|" + word + "|");
//2) проверить строку на соответствие выражению
System.out.println("abc".matches("[a-z]+"));
System.out.println("abc123".matches("[a-z]+"));
System.out.println("abc123".matches("^abc.*"));
//3) в Scanner есть метод useDelimiter() - можно
//указать, какие символы разделяют слова в тексте
Scanner in = new Scanner("ab, c234, 123asdf");
in.useDelimiter("[^a-zA-Z]+");
//слова ab c asdf
//4) замена (replaceAll - по рег. выр, replace - по символам)
System.out.println(
"abc aqwer sdf".replaceAll(" ", "+")
);
//5) группы. Полноценная работа с рег. выр
String text = "Большые сине-зеленый водросли и красно-желтый апельсин.";
//Pattern - это регулярное выражение.
//оно создается методом compile:
Pattern p = Pattern.compile("([а-яА-Я]+)-([а-яА-Я]+)");
//Matcher = сопоставитель. Сопоставляет текст с рег.
//выражением.
Matcher m = p.matcher(text);
m.matches(); //проверить соответствие, проще было бы
//вызвать matches напрямую у строки.
//Этим методом, зато, можно потом
//смотреть содержимое групп
//m.find(); // найти очередное вхождение рег. выр в текст.
//пока рег. выражение находится в строке ...
while (m.find()) {
System.out.println("Найдено!!!");
System.out.println(m.group()); //найденная строка
System.out.println(m.group(1));
System.out.println(m.group(2));
}
//6) в методе replaceAll можно использовать $1, $2 и т.д. для ссылки на группы:
System.out.println("<hello>, some other <word>".replaceAll("<([a-z]+)>", "[$1]"));
//угловые скобки заменятся на квадратные: "[hello], some other [word]". $1 это ссылка на значение группы
}
}