О регулярных выражениях пишут целые книги, поскольку это достаточно сложная тема. Поэтому, тут мы просто вкратце легонько затронем ее, чтобы вы знали о такой возможности обработки строк в классе String и вообще в Java.
Регулярные выражения поддерживаются в стандартной библиотеке Java. Это означает, что ни вам ни пользователю не надо скачивать на каких дополнительных библиотек, чтобы регулярные выражения заработали в ваших программах.
Ну, понеслась!
Начнем с простого примера, разбиения предложения записанного в строке на отдельные слова, в качестве разделителя слов будет использоваться естественный разделитель – пробел. Для этого в классе String есть метод split() – разделение строки на подстроки с использование регулярного выражения.
Регулярным выражением является строка – \\s, которая означает разделитель (пробел, табуляцию, новую строку, перевод страницы и возврат курсора).
Вывод программы следующий:
То есть в массиве строк у нас оказались слова (без пробелов между ними) из строки strTst1.
Теперь добавим еще несколько строчек и пару методов к данному коду:
Даже самое простое регулярное выражение (-|\\+)?\\d+ выглядит как магическое заклинание :), хотя этот шаблон выбирает в тексте целые числа, которые могут быть как со знаками + или –, так и вовсе без них.
Этот фрагмент кода генерирует следующий вывод:
Метод replaceAll(), заменяет все последовательности символов в строке попадающие под шаблон регулярного выражения на строку *NUMBER*. Метод replaceFirst() делает то же самое, но только для первого вхождения строки подпадающей под шаблон регулярного выражения. Как видите числа были заменены везде, где бы они не стояли, отдельно, в середине слова или в его начале. Что согласитесь очень удобно, так как не надо парсить (разбирать) строку посимвольно и сравнивать каждый символ на то является он цифрой или нет, а так же есть ли перед ней знак или нет.
Синтаксис регулярных выражений мы изучим чуть позже. Здесь у нас только знакомство с ними.
Добавим еще немножко кода:
И запустим программу передав ей некоторые аргументы в командной строке.
Запуск и вывод могут выглядеть так:
Здесь желтым подсвечен вывод вышеприведенного фрагмента кода.
Метод matches(), проверяет удовлетворяет ли вся строка целиком заданному регулярному выражению и выводит сообщение о том, подходит оно под этот шаблон или нет, что собственно и видно из вывода программы.
На этом, пока, с регулярными выражениями закончим знакомство, но мы его обязательно продолжим.
Комментариев нет:
Отправить комментарий