Регулярное выражение это своего рода шаблон, который может быть применен к тексту (String, в Java). Java предоставляет пакет
java.util.regex для сопоставления с регулярными выражениями. Регулярные выражения очень похожи на язык программирования Perl и очень просты в освоении.
Регулярное выражение или соответствует тексту (его части) или нет.
* Если регулярное выражение совпадает с частю текста, то мы можем найти еe.
** Если регулярное выражение составное, то мы можем легко выяснить, какая часть регулярного выражения совпадает с какой частью текста.
Первый пример
Регулярное выражение "
[a-z] +" соответствует всем строчныем буквам в тексте.
[a-z] означает любой символ от
a до
z включительно, и
+ означает «один или более» символов.
Предположим, что мы поставляем строку «code 2 learn java tutorial ».
Как это сделать в Java
Во-первых, вы должны составить шаблон:
import java.util.regex.*;
Pattern p = Pattern.compile(“[a-z]+”);
Далее вы должны создать
matcher для текста, отправив сообщение на схеме:
Matcher m = p.matcher(“code 2 learn java tutorial”);
ПРИМЕЧАНИЕ:
Ни Pattern ни Matcher не имеют конструкторов, мы создаем их с помощью методов класса Pattern.
Pattern Class: Объект класса составляет представление регулярного выражения. Класс Pattern не предусматривает никаких публичных конструкторов. Чтобы создать шаблон, необходимо сначала вызвать один из публичных статических методов, которые затем возвращают объект класса Pattern. Эти методы принимают регулярное выражение в качестве аргумента.
Matcher Class: Объект «Искатель» является двигателем, который интерпретирует шаблон и выполняет операции сопоставления с входной строкой. Как и Pattern класс, Matcher не имеет публичных конструкторов. Вы получаете объект Matcher вызовом метода
matcher, на объекте класса Pattern.
После того как мы выполнили эти шаги, и теперь у нас есть экземпляр класса Matcher
m, и теперь мы можем проверить, был найден шаблон или нет, и если да, то в какой позиции, и т.д.
m.matches() возвращает true, если шаблон соответствует всей строке, иначе false.
m.lookingAt() возвращает true, если шаблон соответствует началу строки, и false в противном случае.
m.find () возвращает true, если шаблон совпадает с любой частью текста.
Находим совпадение
После успешного сопостовления,
m.start() вернет индекс первого символа, совпавшего и
m.end() вернет индекс последнего совпавшего символа, плюс один.