Инструменты пользователя

Инструменты сайта


regexp

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

regexp [2015/02/05 02:27] (текущий)
admin создано
Строка 1: Строка 1:
 +====== Регулярные выражения. Реджексы. ======
  
 +Специальные символы называются метасимвлами\\
 +Обычный текст называется литералами\\
 +
 +**^** начало строки\\
 +**$** конец строки\\
 +**egrep ^cat$** ищет строку которая состоит из полследовательности литералов cat\\
 +\\
 +**[...]** симвльный класс, определяет возможные варианты литералов\\
 +**c[ao]t** ищет cat или cot т.е. ​ ищет симвл c за которым следует a или o за которым следует t\\
 +**-** обозначает интервал слов\\
 +[a-z]\\
 +[0-9]\\
 +\\
 +[0123456789abcdefABCDEF] можно записать [0-9a-fA-F] или [A-F0-9a-f] порядок перечисления роли не играет.
 +в классе [0-9A-Z_!.?​] специальное значение имеют только знаки -, чтоб - вошел в интервал необходимо написать его в начале.\\
 +\\
 +**Инвертированные символьные классы.**
 +**[^…]** класс совпадает с любыми символами не входящими в список.\\
 +**.** один произвольный символ.\\
 +19/03/76 или 19-03-76 можно найти 19.03.76 как аналог 19[-./​]03[-./​]76\\
 +\\
 +**|** "​или"​ совподающее с любым из компонентов,​ () ограничивают действие метасимвола.\\
 +gr(a|e)y\\
 +\\
 +**Игнорирование различий в регистре символов.**\\
 +для команды egrep это ключ -i\\
 +\\
 +**Границы слов.**\\
 +\< и \> анлоги ^$ но для слов.\\
 +Команда egrep '​\<​cat\>'​ slova найдет все строки со словом cat
 +\\
 +
 +**Квантификаторы.**
 +**?** метасимвол ? означает,​ что предшествующий символ является необязательным.\\
 +color или colour colou?r\\
 +(July|Jul).(fourth|4th|4) July?​.(fourth |4(th)?)\\
 +\\
 +
 +**+** один или несколько экземпляров непосредственно предшествующего элемента.\\
 +\\
 +***** любое количество экземпляров в том числе и нулевое.\\
 +\\
 +|**Квантификатор** |**Необходимый минимум** |**Максимальное количество** |**Смысл**|
 +|? | нет | 1 |допускается наличие одного элемента;​ не обязательно («один необязательный элемент»)|
 +|* | нет | не ограничено |Допускается неограниченное количество;​ не требуется ни один(«любое количество необязательно»)|
 +|+ | 1 | не ограничено |Требуется хотя бы один экземпляр;​ допускается неограниченное количество («один или более»)|
 +\\
 +<​[Hh][Rr]( +SIZE *= *[0-9]+ *)? *>
 +\\
 +**{число,​ число}** определение интервалов количества экземпляров\\
 +{3,6} число совпадений может быть от 3 до 6\\
 +{0,1} эквивалентна ?\\
 +\\
 +**() \1** обратная ссылка позволяет искать новый текст, который совпадает с другим текстом,​ совпавшим с предшествующей частью выражения,​ причем на момент написания выражения этот текст неизвестен.\\
 +\<​the•the\ можно найти как \<​([A-Za-z]+) +\1\>\\
 +egrep '​\<​([a-z]+)\1\>'​ slova ищет слова в которых левые и правые части одинаковы\\
 +в выраженнии можно включить несколько пар скобок и использовать ссылки \1 \2 \3 ...\\
 +egrep '​\<​([a-z])([a-z])([a-z])\3\2\1'​ slova ищет полиномы состоящие из 6 букв\\
 +
 +**Экранирование.**\\
 +
 +**\.** экранированная точка.\\
 +**\( \)** экранированные скобки.\\
 +
 +**Итого:​** \\
 +
 +**Сводка метасимволов egrep**\\
 +
 +|**Элементы,​ обозначающие отдельный символ**|
 +|**Метасимвол**| **Название**| **Интерпретация**|
 +|**.** |Точка |Один любой символ|
 +|**[…]**| Символьный класс |Любой из перечисленных символов|
 +|**[^…]**| Инвертированный символьный класс |Любой символ,​ не перечисленный в классе|
 +|**\**|символ Экранирование| Если перед метасимволом ставится экранирующий префикс \, то символ интерпретируется как соответствующий литерал|
 +|**Квантификаторы**|
 +|**?** |Вопросительный знак |Допускается один экземпляр (ни один не требуется)|
 +|*| Звездочка| Допускается любое количество экземпляров (ни один не требуется)|
 +|**+**| Плюс |Требуется один экземпляр,​ допускается любое количество экземпляров|
 +|**{min, max}**| Интервальный квантификатор| Требуется min экземпляров,​ допускается max экземпляров|
 +|**Позиционные метасимволы**|
 +|**^** |Крышка,​ циркумфлекс| Позиция в начале строки|
 +|**$**| Доллар |Позиция в конце строки|
 +|**\<**| Граница слова| Позиция в начале слова|
 +|**/>**| Граница слова| Позиция в конце слова|
 +|**Прочие метасимволы**|
 +|**|** |Конструкция выбора| Любое из перечисленных выражений|
 +|(…)| Круглые скобки| Ограничение конструкции выбора,​группировка для применения квантификаторов и «сохранение» текста для обратных ссылок|
 +|**\1,​\2,​...** |Обратная ссылка| Текст, ранее совпавший с первой,​ второй и т. д. парами круглых скобок|
regexp.txt · Последние изменения: 2015/02/05 02:27 — admin