LXF70:Perl. Сортируем наш код
(Новая статья викификация, оформление) |
м («LXF70:Perl2» переименована в «Perl. Сортируем наш код») |
Версия 05:26, 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 \+ # один знак "+" \++ # Один или несколько знаков "+"