Но, есть данные, для которых используется специальная форма записи. Например, адреса eMail, телефонные номера и т. п. Проверку таких данных выполнить сложнее. Нужно проверять наличие обязательных элементов (например, символ @ в адресе eMail), их взаимное расположение и т. д. Кроме того, могут возникнуть дополнительные задачи. Например, выделение кода города из телефонного номера. Конечно, для выполнения таких проверок можно написать специальную функцию, содержащую один или несколько циклов, в которых будет выполняться проверка соответствия строки всем требованиям. Но в этом случае, зачастую, получается, что объем кода, выполняющего эти проверки, составляет, чуть ли не половину всей программу (если не больше). К счастью, существует ряд методов, позволяющих существенно упростить задачу. Об одном из них я и хочу рассказать.
Этот метод заключается в использовании регулярных выражений (regular expressions). Никогда о них не слышали? Не страшно. Я уверен, что вы постоянно ими пользуетесь. Например, если вам нужно найти все файлы с расширением mp3, то в программе поиска вы пишите "*.mp3". Это и есть регулярное выражение. В данном случае программа поиска выдаст вам список файлов, у которых имя состоит из любого количества любых символов, после имени идет символ ".", а за ним – "*mp3". Если вы напишите "A*.mp3", то получите список файлов, которые начинаются на букву "A", и имеют расширение "mp3". Вообще, регулярное выражение представляет собой шаблон, с которым можно сравнивать текстовые строки. В приведённом примере, программа поиска сравнивает все имена файлов с заданным шаблоном, и показывает только те, которые с ним совпали. Средства Java для работы с регулярными выражениями В стандартную библиотеку Java входит пакет, специально предназначенный для работы с регулярными выражениями – java. util. regex. Эта библиотека может быть использована для выполнения таких задач:
- поиск данных; проверка данных; выборочное изменение данных; выделение фрагментов данных; и др..
Получить подробную информацию о библиотеке можно из официальной справки к JavaSDK, размещённой на сайте java. sun. com. Здесь же можно почитать The Java Tutorial (учебное пособие по Java), в котором регулярным выражениям посвящён отдельный урок. В этой статье я хочу показать примеры использования регулярных выражений для проверки правильности ввода данных, и извлечения фрагментов этих данных. Основную работу выполняют два класса: Pattern и Matcher. Pattern – представляет собой сам шаблон, т. е. наше регулярное выражение. Matcher – это объект, который выполняет сравнение заданной строки с шаблоном. Для того чтобы создать объект типа Pattern нужно воспользоваться его статическим методом compile() или compile(, ). Создать Matcher можно с помощью объекта Pattern. Например, так: