Журнал LinuxFormat - перейти на главную

LXF70:Perl. Сортируем наш код

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Новая статья викификация, оформление)

Версия 05:25, 13 марта 2008

Часть 2. Напуганы непостижимыми операторами Perl и регулярными выражениями? Еще больше напуганы словом «непостижимые»? Марк Фиоретти (Marco Fioretti) может всё объяснить!

Содержание


Перед тем, как отправиться в путешествие по королевству Perl, вы должны запомнить три типа переменных: скаляр, массив и хэш. Отмеченные символом $ скаляры содержат один кусочек информации, например строку. В нашем втором руководстве мы узнаем, как работать с более сложными величинами, массивами и хэшами, а затем покажем вам настоящую черную магию Perl — регулярные выражения.

Сортировка и перечисление

...

Чистый хэш

...

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

...



Подсказка

Подсчёт числа элементов массива
Как можно узнать, сколько элементов содержится в массиве или хэше? Очень просто, присвоить их скалярной переменной! Поскольку она может содержать только одно число, Perl поместит туда число элементов массива. Тот же способ работает с хэшами. Функция keys возвращает массив, содержащий только ключи хэша, так что его размер можно узнать следующим образом:

$HOW_MANY_JEDI = @JEDI;
$HOW_MANY_ITEMS_INTO_AN_HASH = keys %SOME_HASH;

Как разрушить свою жизнь регулярными выражениями

Perl, вероятно, содержит гораздо больше регулярных выражений, чем все другие языки программирования. Для того, чтобы своими глазами увидеть, насколько мощными и неудобными они могут быть, посмотрите на самое длинное из всех, что я видел — http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html. Говорят, что оно проверяет правильность адреса e-mail, но я не могу это проверить. Если хотите научиться создавать такие же, прочитайте книгу Джефри Фридла «Регулярные выражения» (Jeffrey Friedl, «Mastering Regular expressions», O’Reilly, 2002).

Регулярные выражения: шпаргалка

Здесь приведён список основных метасимволов, используемых в регулярных выражениях Perl. Скопируйте его и держите поближе к клавиатуре, он действительно помогает сэкономить время.

  • . — Любой символ за исключением перевода строки
  • ^ — Начало строки
  • $ — Конец строки
  • * — Ноль или более предыдущих символов
  • + — Один или более предыдущий символ
  •  ? — Ноль или один предыдущий символ
  • \n — Перевод строки
  • \t — Табуляция
  • \w — Числа и алфавитные символы, вне зависимости от регистра
  • \W — Все символы, кроме букв или цифр
  • \d — Старые добрые цифры: 0, 1 и так до 9.
  • \D — Всё, кроме цифр.
  • \s — Пробельные символы: пробел, табуляция, перевод строки.
  • \S — Любой не пробельный символ.
  • \b — Граница слова.
  • | — Выбор из двух вариантов (например A|B).
  • [] — Квадратные скобки определяют диапазон символов.
  • () — Круглые скобки сохраняют соответствующую им подстроку.

Примечания: Когда вам необходимо вставить в регулярное выражение один из этих символов в его буквальном смысле, например знак «+», нужно поставить перед ним обратную косую черту (\).

A+ # Одна или несколько букв A
\+ # один знак "+"
\++ # Один или несколько знаков "+"
Персональные инструменты
купить
подписаться
Яндекс.Метрика