Все о Linux. LinuxRSP.Ru


Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

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

Регулярные выражения представляют собой средства для поиска и обработки строк по шаблонам. Любое регулярное выражение представляет собой набор цифр, букв, знаков и символов-шаблонов, описывающих искомое выражение. Символы-шаблоны заменяют один или более обычных символов. Например, такой символ-шаблон . обозначает любой символ. Вот список символов-шаблонов с описанием:

  • .(точка) - обозначает любой символ, кроме "\n".
  • \w - обозначает любой алфавитно-цифровой символ и символ "_".
  • \W - обозначает любой не алфавитно-цифровой символ и не символ "_".
  • \s - обозначает символ пробела.
  • \S - обозначает любой символ, кроме символа пробела.
  • \d - обозначает любой цифровой символ.
  • \D - обозначает любой не цифровой символ.
  • [  ] - обозначает любой символ из перечисленных в скобках.

  • [a-zA-Z] - любой символ от a до z и от A до Z.
    [12gh] - "1", "2", "g" или "h".
    

  • (  ) - с помощью скобок символы-шаблоны можно группировать.
  • \l - переводит следующий символ в нижний регистр.
  • \u - переводит следующий символ в верхний регистр.

  • \lWe\uk\lq - строка "weKq".
    \lu\lU\ld\lQ\ug\uq. - строка "uudqGQ".
    

  • \Lсимволы\E - переводит в нижний регистр набор символов, начиная с \L и заканчивая \E.
  • \Uсимволы\E - переводит в верхний регистр набор символов, начиная с \U и заканчивая \E ( кстати говоря, при нормально настроенной локали Perl прекрасно переводит и в верхний и в нижний регистры русские буквы ).

  • \LTrjKLf\E - строка "trjklf".
     \UghJtRes\E. - строка "GHJTRES".
     

  • \Qсимволы\E - начиная с \Q и заканчивая \E символы-шаблоны не действуют.

  • \Q\We\uk\l\E - строка "\We\uk\l".
    

  • ^ - данный символ-шаблон показывает, что искомое выражение должно находиться в начале строки.
  • $ - этот символ-шаблон показывает, что искомое выражение должно находиться в конце строки или перед символом "\n" для многострочного текста.
  • \b - обозначает, что искомое выражение находиться в начале слова.
  • \B - обозначает, что искомое выражение находиться не в начале слова.
  • \A - эквивалент "^".
  • \Z - эквивалент "$".
  • \z - означает, что искомое выражение находиться в конце многострочного текста

Как ты заметил, символы-шаблоны \w,\W,\d,\D,\s,\S,[  ],.(точка) обозначают только один символ. Для обозначения нескольких подряд идущих однотипных символов применяются модификаторы.

  • * - обозначает, что символ повторяется 0 и более раз.
  • + - обозначает, что символ повторяется 1 и более раз.
  • ? - символ повторяется 0 или 1 раз.
  • {N} - символ повторяется N раз.
  • {N,} - символ повторяется как минимум N раз.
  • {N,M} - символ повторяется минимум N раз и максимум M раз.

Если ты применяешь модификаторы и хочешь ограничить их действие на совпадение минимальной длины, используй модификатор "?".

  • *? - обозначает, что символ повторяется 0 и более раз.
  • +? - обозначает, что символ повторяется 1 и более раз.
  • ?? - символ повторяется 0 или 1 раз.
  • {N}? - символ повторяется N раз.
  • {N,}? - символ повторяется как минимум N раз.
  • {N,M}? - символ повторяется минимум N раз и максимум M раз.

Если не использовать "?", под действие спец. символа попадает весь набор символов, идущих подряд и соответствующих ему, а если использовать, то под действие символа-шаблона попадает та часть, которая является минимальной для удовлетворения действия шаблона.

Также в шаблонах в качестве простых символов используются специальные символы.

  • \\ -символ "\".
  • \/ -символ "/".
  • \" - двойная кавычка.
  • \' - одинарная кавычка.
  • \. - точка.
  • \^ - символ "^".
  • \$ - символ "$".
  • \* - символ "*".
  • \? - символ "?".
  • \+ - символ "+".
  • \{ - символ "{".
  • \} - символ "}".
  • \t - табуляция.
  • \n - новая строка.
  • \r - возврат каретки.
  • \v - вертикальная табуляция.
  • \f - перевод формата.
  • \a - звонок.
  • \e - escape.
  • \0NN - восьмеричный код символа ( например \033 ).
  • \xNN - шестнадцатиричный код символа ( например \x0F ).

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

Предыдущая

Содержание

Следующая


      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2017 LinuxRSP