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

Если вы работаете с текстом, вы оцените, насколько полезны регулярные выражения. Это небольшие символы текста, которые позволяют вам создавать сложные правила о том, как выглядит слово. Эти правила могут быть такими же простыми, как сопоставление одной буквы в документе, или чем-то сложным, например, поиск каждого слова, которое начинается на «a» и «c», но заканчивается на «ism».
Скачайте этот чит-скрипт
Введите свой адрес электронной почты ниже, чтобы получить этот PDF чит-скрипт на свой почтовый ящик.
Основные регулярные выражения
Регулярные выражения (или regex для краткости) повсюду в средах Linux для поиска по тексту до самого символа. Этот чит-скрипт регулярных выражений будет полезен людям, которым время от времени просто нужна небольшая освежающая информация.
Однако важно отметить, что набор используемых регулярных выражений в значительной степени зависит от типа стандарта, который использует программное обеспечение. Например, обычные терминалы Linux часто используют стандарт POSIX, в то время как Vim и Perl используют нестандартные определения.
| Метасимвол | Описание | Пример |
|---|---|---|
| Сопоставление символов | ||
| A | Найти любое вхождение буквы «a» в документе и сопоставить его. | a соответствует «муравей», «кот» и «Анна». |
| . | Сопоставить любой отдельный символ, кроме управляющих символов. | c.t соответствует «кот», «резать» или «кот». |
| * | Повторить предыдущее выражение 0 или более раз (жадный режим). | 12*3 соответствует «13», «123», «1223», «12223». Это может быть использовано вместе с «.», например, m.*easier соответствует «maketecheasier». Использование .* само по себе бессмысленно, так как это соответствует всему и возвращает полный результат. |
| + | Повторить предыдущее выражение 1 или более раз. | 12+3 соответствует «123», «1223», «12223». |
| ? | Делает предыдущий элемент необязательным. | ma?ke соответствует «сделать», «мке». |
| ^ | Совпадение с началом строки. | ^he соответствует «привет», «ад», «помощь», «он мальчик». |
| $ | Совпадение с концом строки. | ed$ соответствует «сделано», «кровать», «жадность». |
| Сопоставление диапазонов | ||
| ( … ) | Группировка символов или выражений. | (ak) соответствует «сделать», «взять». |
| { n } | Сопоставить предыдущий элемент ровно n раз. | 12{3}5 соответствует «12225». |
| [ … ] | Совпадает с одним символом в скобках. | [abc] соответствует «a», «b» или «c» в строке «abc». |
| [^ … ] | Совпадает с любым символом, кроме тех, которые определены в скобках. | a[^b]c соответствует «aec», «acc», «adc», но не «abc». |
| Сопоставление классов (POSIX) | ||
| [:alpha:] | Найти любой символ в английском алфавите и сопоставить его. | [[:alpha:]]ut будет соответствовать словам «но», «резать» и «путь». |
| [:alnum:] | Найти любой символ и цифру и сопоставить это. | [[:alnum]]tack будет соответствовать «стек» и «5tack». |
| [:blank:] | Найти вхождение либо табуляции, либо пробела и сопоставить его. | [[:blank:]]Hello будет соответствовать « Hello». |
| [:space:] | Найти любой символ пробела и сопоставить его. | [[:space:]]World будет соответствовать « World». |
| [:upper:] | Найти любую заглавную букву и сопоставить её. | [[:upper:]]+ будет соответствовать словам «ПРИВЕТ», «Фантастично» и «мИР». |
| [:lower:] | Найти любую строчную букву и сопоставить её. | [[:lower:]]+ будет соответствовать словам «нАйти», «Фантастично» и «мир». |
| [:punct:] | Найти любой знак препинания и сопоставить его. | \w+[[:punct:]] будет соответствовать следующим словам: «Эй!», «Привет.» и «Ты?». |
| [:cntrl:] | Найти любой управляющий символ и сопоставить его. | \w+[[:cntrl:]]$ будет соответствовать следующим словам: «end^M», «word^M» и «this^M». |
| [.ng.] | Найти любую диграф «ng» и сопоставить его. | bad[.zh.] будет соответствовать слову «значок». |
| [=n=] | Найти и сопоставить все диакритические буквы «n». | [=a=]\w+ будет соответствовать словам «ànna», «ápple» и «âble». |
| Сопоставление классов (Perl/Vim) | ||
| \B | Найти любой символ, который не является границей слова, и сопоставить его. | \B+\b будет соответствовать «о » в «привет » и « h» в « привет». |
| \w | Найти любую букву и цифру, затем сопоставить её. | \w{5} будет соответствовать следующему сочетанию букв и цифр: «мир», «12345» и «w0r1d». |
| \W | Найти любые символы и сопоставить их. | \w{2}\W\b будет соответствовать следующим словам: «как.», «ха!» и «я?». |
| \d | Найти любую цифру и сопоставить её. | \d{3} будет соответствовать следующим числам: «111», «777» и «888». |
| \D | Найти любой символ, который не является цифрой, и сопоставить его. | \D{3} будет соответствовать следующим буквам и символам: «муравей», «ба!» и «!#*». |
| \s | Найти любые пробельные символы и сопоставить их. | a\w+(i|y)sm\s будет соответствовать следующим словам: «альтруизм », «альбинизм » и «аневризм ». | | \S | Найти любые непробельные символы и сопоставить их. | \S{5} будет соответствовать следующим: «123hi», «hi!^&» и « | | \A | Найти начало слова независимо от его нахождения в начале строки. | \A{2} будет соответствовать «Он» и «во» в «Привет мир». | | \Z | Найти конец слова независимо от его нахождения в конце строки. | \z{2} будет соответствовать «ло» и «д» в «Привет мир». | | Управляющие символы | | | | | | Сопоставить либо выражение слева, либо справа от вертикальной черты. | col(o|ou)r соответствует «цвет», «цвет». | | – | Указать диапазон символов для сопоставления. Чаще всего используется в [a-z], [A-Z],[1-9],[a-zA-Z1-9]. | a[a-z]c соответствует «abc», «acc», «adc». | | \ | Экранировать специальный символ и превратить его в обычный символ. | a\*c соответствует «ac». | | \n, \r, \t | Сопоставить символ новой строки, возврат и символ табуляции соответственно. | \w{5}\t\w{5}(\n|\r) будет соответствовать «Привет Мир». | | \b…\b | Сопоставить слово в пределах границы. | \bTech\b соответствует слову «Tech» в «Сделать Tech Easier». | | *Сложные выражения | | | | [0-9]{3}-[0-9]{4} | Найти любую последовательность из трех и четырех цифр и сопоставить ее. | Это выражение будет соответствовать следующему сочетанию цифр: «123-1234», «111-1111» и «777-1234». | | ([0-9]{3}-)?[0-9]{3}-[0-9]{4} | Сопоставить два трехзначных числа и одно четырехзначное число. | Это выражение будет соответствовать следующим сочетаниям: «123-123-1234», «000-111-0001» и «777-5678». | | .{1,3} | Найти любое слово, длина которого от одного до трех символов. | Это выражение будет соответствовать следующим словам: «ат», «это» и «можно». | | ([A-Z])\w+ | Сопоставить любое слово, начинающееся с заглавной буквы. | Это выражение будет соответствовать следующим словам: «Привет», «Мир» и «Эй». | | e[([:digit:]|[:alnum:])]c | Сопоставить любой буквенно-цифровой символ между «e» и «c». | Это выражение будет соответствовать следующим сочетаниям: «e1c», «e5c» и «e7c». | | [^0-9[:upper:]]+ | Найти любое полностью заглавное слово, которое не начинается с цифры. | Это выражение будет соответствовать следующим словам: «ПРИВЕТ», «МИР» и «ЭЙ». | | “.+” | Найти слово в кавычках и сопоставить его. | Это выражение будет соответствовать следующей цитате: «Привет, мир!». |
Изображение предоставлено: Unsplash