Синтаксис регулярных выражений — КиберПедия 

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Синтаксис регулярных выражений

2022-12-30 18
Синтаксис регулярных выражений 0.00 из 5.00 0 оценок
Заказать работу

Для сокращения размеров регулярных выражений, Perl использует специальные символы. Таблица 12.6 содержит список некоторых из символов, используемых скриптами языка Perl в регулярных выражениях.

Табл. 12.6. Символы, используемые в регумрных выражениях

Символ Описание
. Соответствует любому символу (за исключением символа новой строки)
(..) Группирует последовательность элементов
+ Удовлетворяет предыдущему образцу один или большее количество раз
? Удовлетворяет образцу нуль или один раз
* Соответствует образцу один или нуль раз
[...] Соответствует символу из заданного множества
[^...] Соответствует символу из множества, полученного отрицанием
(...|...|...) Соответствует одной из альтернатив
^ Соответствует началу строки
$ Соответствует образцу в конце строки
{n,m} Соответствует образцу от n до m раз
{n} Соответствует образцу точно n раз
{n,} Соответствует образцу минимум n раз
\n\t etc. Соответствует знаку новой линии, символу табуляции и т. д.
\b Соответствует на границе слова
\B Соответствует внутри границ слова
\d Соответствует цифре
\D Соответствует не цифре
\s Соответствует пробелу
\S Соответствует не пробелу
\w Соответствует букве или цифре
\W Соответствует символу, не являющемуся ни буквой, ни цифрой

Perl помещает регулярные выражения (образцы, шаблоны) в слэши, т. е. в наклонные черточки, например, в виде /pattern/. Следующий фрагмент программы иллюстрирует регулярные выражения языка Perl:

# the following regular expressions are true if: /ig/     # string contains 'ig' /(b|d|f)ig/ # string contains 'big', 'dig' or 'fig' /[0-9]+/   # string contains a number /[A-Za-z][A-Za-a0-9_]*/ # string contains an identifier

Если эти выражения кажутся вам бессмысленными, не беспокойтесь. В этой главе мы собираемся рассмотреть несколько регулярных выражений. Сейчас просто запомните, что Perl помещает регулярные выражения между двумя наклонными чертами-слэшами, как показано выше.

ИСПОЛЬЗОВАНИЕ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ ДЛЯ ПОИСКА ПО КЛЮЧЕВЫМСЛОВАМ

Скрипты языка Perl используют регулярные выражения для того,чтобы упростить сравнение строк. Для того чтобы проверить, содержит ли строка заданный образец, скрипт может использовать регулярные выражения следующим образом:

  if ($str =~ /pattern/)

В данном случае регулярные выражения принимают значение <истинно>, если образец найден в строке ($str). Если строка по содержит образца, то выражение возвращает значение <ложно>. Например, следующее выражение проверяет, содержит ли строка текст WebProgramming:

if ($str =~ /Web Programming/)

Для того, чтобы проверить полное совпадение, выражение должно привязать сравнение к началу и концу строки. Например, следующее выражение имеет значением величину <истинно>, если итолько если переменная $str принимает одно из трех значений:<banana>, <bananana>) <banananana>:

  ($str =~ /^ba(na) {2,4}$/)

Аналогичным образом, следующее выражение истинно тогда итолько тогда, когда переменная $str содержит слово <the> и не является частью другого слова, такого как <their>.

($str =~ /\bthe\b/)

ИСПОЛЬЗОВАНИЕ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ ДЛЯ АНАЛИЗА ВХОДНЫХ ДАННЫХ

По мере усложнения ваших скриптов Perl возникнет много случаев, когда вы захотите узнать больше, чем просто проверить, совпадает ли образец со строкой или нет. Например, может потребоваться, чтобы скрипт извлек определенное значение строки.Используя символы группировки () внутри регулярного выражения,скрипт может извлечь соответствующие образцу значения из строки исформировать из них список. Например, следующий фрагмент программы использует регулярные выражения для того, чтобы извлечь месяцы, дни и годы из списка:

$str = " January 1, 1997, "; ($m, $d, $y) = $str =~ /\s*(\S*)\s + (\d+)\D + (\d{4})/;

В этом случае можно прочитать регулярные выражения следующим образом:

? Пропустить вначале любой специальный символ;? записать все символы, не являющиеся специальными, в переменную $m    ? (переменная для обозначения месяцев);? пропустить специальный символ;? поместить все цифры в переменную $d (переменная для записи дней);? пропустить все знаки, не являющиеся цифрами;? записать четыре цифры в переменную $у (переменная для обозначения лет).

Perl поддерживает также другую форму сравнения с образцом,использующую оператор (=~), который добавляет отрицание результата: (!~). Этот оператор эквивалентен выражению!($str=~/pattern/).


Поделиться с друзьями:

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.