вторник, 26 апреля 2016 г.

Регулярные выражения в Java

В заметке описан пример использования регулярных выражений на Java.

Для работы с регулярными выражениями используется пакет java.util.regex в нём есть два класса:
Pattern - скомпилированное регулярное выражение, представленное в виде класса.
Matcher - движок поиска выражения, он позволяет многократно искать регулярное выражение представленное в виде класса Pattern в тексте.

В качестве примера рассмотрим такой случай. При разборе документа или веб страницы на ней находиться строка с текстом "Должность: Ведущий инженер" или "Должность: инженер 1 категории" и т.д. из этих строк необходимо получить только название должности, т.е. то что идет за ":".
Для этого нам потребуется такое выражение:

(?<=:\s)[А-Яа-я\s\d]+
либо
(?<=:\s).*

String PositionName = "";
//задаем и оборачиваем в объект p регулярное выражение
Pattern p = Pattern.compile("(?<=:)[А-Яа-я\\s\\d]+");
//Получаем разборщик регулярных выражений для текста
Matcher m = p.matcher("Должность: Ведущий инженер");  
if(m.find())
{
    PositionName=m.group().trim();
} 

System.out.println("PositionName:"+PositionName);



Для тестирования регулярных выражений можно пользоваться ресурсом
http://java-regex-tester.appspot.com/.

Подробнее можно почитать
http://www.javaportal.ru/java/articles/regexp.html
http://www.tutorialspoint.com/java/java_regular_expressions.htm
http://www.quizful.net/post/Java-RegExp
https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F
http://www.exlab.net/tools/sheets/regexp.html


Комментариев нет:

Отправить комментарий