3.14.9. Еще несколько образцов
3.14.9. Еще несколько образцов
Завершим наш список несколькими выражениями из категории «разное». Как обычно, почти все эти задачи можно решить несколькими способами.
Пусть нужно распознать двузначный почтовый код американского штата. Проще всего, конечно, взять выражение /[A-Z]{2}/. Но оно сопоставляется с такими строками, как XX или ZZ, которые допустимы, но бессмысленны. Следующий образец распознает все стандартные аббревиатуры, общим числом 51 (50 штатов и DC — округ Колумбия):
state = /^A[LKZR] ! C[AOT] | D[EC] | FL | GA | HI | I[DLNA] |
K[SY] | LA | M[EDAINSOT] | N[EVHJMYCD] | O[HKR] |
PA | RI | S[CD] | T[NX] | UT | V[TA] | W[AVIY]$/x
Для ясности я воспользовался обобщенным регулярным выражением (модификатор x). Пробелы и символы новой строки в нем игнорируются.
Продолжая эту тему, приведем регулярное выражение для распознавания почтового индекса США (он может состоять из пяти или девяти цифр):
zip = /^d{5}(-d{4))?$/
Якоря (в этом и других выражениях) призваны лишь гарантировать, что ни до, ни после сопоставленной строки никаких лишних символов нет. Отметим, что это выражение не отбрасывает несуществующие индексы, поэтому оно не так полезно, как предыдущее.
Следующее регулярное выражение распознает номер телефона в формате NANP (североамериканский план нумерации). Есть три способа записи такого номера:
phone = /^(((d{3}) |d{3}-)d{3}-d{4}|d{3}.d{3}.d{4})$/
"(512) 555-1234" =~ phone # true
"512.555.1234" =~ phone # true
"512-555-1234" =~ phone # true
"(512)-555-1234" =~ phone # false
"512-555.1234" =~ phone # false
Распознавание денежной суммы в долларах также не составит труда:
dollar = /^$d+{.dd)?$/
Ясно, что слева от десятичной точки должна быть хотя бы одна цифра, а после знака доллара не должно быть пробелов. Отметим еще, что если вы хотите только выделить, а не проконтролировать суммы в долларах, то якоря следовало бы удалить, а центы сделать необязательными.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Создание образцов выбора
Создание образцов выбора Как вы могли ожидать, исходя из того, что "child::MASS" можно представить в виде "MASS" и применения шаблонов, таких как "/", "/PLANETS" и т.д., вплотную познакомиться с созданием образцов выбора не так-то просто — этому посвящена вся глава 4.Образцы выбора (match pattern)
Глава 4 Создание образцов выбора
Глава 4 Создание образцов выбора До сих пор материал книги был достаточно очевиден, за исключением одного: несколько загадочных образцов выбора (match pattern). Мы работали с различными образцами выбора, такими как «/PLANETS» в элементах <xsl:template>, не предлагая систематического
Несколько примеров
Несколько примеров Рассмотрим теперь несколько примеров применения каждого метода.Режим с управлением по запросу (send-driven) — модель «клиент/сервер»Файловая система, последовательные порты, консоли и звуковые платы — все это примеры применения модели «клиент/сервер».
3.2. Сопоставление образцов
3.2. Сопоставление образцов При замене одного фрейма другим не имеет смысла начинать весь процесс согласования заново. Но каким образом можно сохранить то, что было уже ранее установлено? Будем рассматривать лишь тот случай, когда при отсутствии специальных знаний
10.10. Несколько производителей, несколько потребителей
10.10. Несколько производителей, несколько потребителей Следующее изменение, которое мы внесем в нашу пpoгрaммy, будет заключаться в добавлении возможности одновременной работы нескольких потребителей вместе с несколькими производителями. Есть ли смысл в наличии
Ячейки образцов материалов
Ячейки образцов материалов По умолчанию при работе над новой сценой Material Editor (Редактор материалов) показывает шесть ячеек с образцами материалов. Щелчок на ячейке активизирует ее и изменяет цвет ее границы на белый. Если ячейка образца содержит материал, который
Multiple (Несколько)
Multiple (Несколько) Программа AutoCAD выполняет полное сканирование экрана каждый раз, когда происходит выделение объекта. Режим Multiple (Несколько) позволяет выделить несколько объектов без задержки, и при нажатии клавиши Enter все точки будут выбраны за одно сканирование
Шаг первый – получение образцов почерка
Шаг первый – получение образцов почерка Требования к образцу почерка, представленному для графологического анализа, общеприняты в графологии. Образец должен быть выполнен на гладком листе не разлинованной бумаги стандартного размера. Текст должен быть достаточно
Шаг второй – анализ образцов
Шаг второй – анализ образцов Графологи тщательно анализируют имеющиеся тексты с тем, чтобы выявить признаки почерка. Этот процесс не такой простой, как может показаться на первый взгляд. Он требует внимания, тщательности и опыта. Ни один признак, как правило, не
Подход третий: Несколько product owner’ов - несколько backlog’ов
Подход третий: Несколько product owner’ов - несколько backlog’ов Похоже на второй вариант, по отдельному product backlog на команду, только ещё и с отдельным product owner’ом на каждую команду. Мы не пробовали так делать, и, скорее всего, пробовать не будем.Если два product backlog’а касаются одного и
Типы образцов Flash
Типы образцов Flash Прежде всего нам необходимо познакомиться с типами образцов, поддерживаемых Flash. Каждый из этих типов обладает специфическими свойствами и имеет особую область применения. Всего этих типов пять.Обычно тип образца задается при его создании, но
Создание образцов
Создание образцов Есть два пути создания образца. Во-первых, мы можем нарисовать на рабочем листе какую-либо фигуру, а потом превратить ее в образец и поместить в библиотеку. Во-вторых, мы можем создать "пустой" образец и поместить его в библиотеку, а уже потом "наполнить"
Совместное использование образцов и библиотек
Совместное использование образцов и библиотек В свете последних тенденций глобализации и международного разделения труда будет нелишним разговор о совместном использовании образцов и целых библиотек. Речь в данном разделе пойдет о том, как сделать наши образцы
Использование образцов-клипов
Использование образцов-клипов А теперь давайте сделаем вот что. Запустим воспроизведение созданной нами составной анимации в отдельном окне, выбрав пункт Test Movie меню Control. После этого в окне просмотра фильма отключим пункт-выключатель Loop в меню Control, чтобы убрать
§ 1.3 Несколько слов о XML
§ 1.3 Несколько слов о XML Расширяемый язык разметки — eXtensible Markup Language, был создан для хранения структурированных данных в текстовом формате. Теоретически файлы XML должны легко читаться, как программным обеспечением, так и человеком.С использованием технологии XML можно