| ( ) | начало и конец группы, например (text). Означают
последовательность. Используются для применения квантификаторов не к
одному символу, а к нескольким, а также для дальнейшего использования
найденной последовательности. |
| [ ] |
начало и конец описания символьного класса, например [a-z]. Символьный
класс возвращает один символ из множества. Изменить это могут
повторители. |
| { } |
начало и конец повторителей, например {3,8} |
| \ |
экранирующий символ, принять метасимвол как обычный символ, например (\\, \., \[, \], \{, \}, \*). |
| ^ |
начало строки (или начало текста в многострочных текстах), например ^text text$ |
| $ |
конец строки (или конец текста в многострочных текстах), например ^text text$ |
| . |
любой символ, кроме перевода строки (по умолчанию) |
| | |
символ "или", обычно внутри группы, например (10|20) |
| ? |
предыдущий символ либо имеется, либо не имеется, аналогично и для групп. После символа повтора - жадность паттерна - (.*?) |
| * |
повтор предыдущего символа или группы 0 и более раз |
| + |
повтор предыдущего символа или группы 1 и более раз |
| \ | экранирующий символ |
| ^ |
символ исключения, но в случае, когда стоит первым, например [^3] |
| - |
символ охвата, например [a-z], то есть все символы от a до z |
| [ ] |
начало и конец описания символьного класса, например [a-z] |
| \1 - \9 | ссылка на найденную группу в самом шаблоне и в шаблоне замены |
| $1 - $9 |
ссылка на найденную группу в шаблоне замены |
| $0 или \0 |
весь шаблон поиска или все группы |
| \a |
Chr(7) - символ с десятичным ASCII-кодом 7 (звонок). При выводе производит звуковой сигнал. BEL (hex 07) |
| \cn |
управляющий символ, который генерируется при нажатии комбинации клавиш
Ctrl+n, где n- символ, например \cD соответствует Ctrl+D. \cA = \001,
\cZ = \032, \cM = \r = \015 |
| \e |
Chr(27) - символ escape (hex 1B) |
| \f |
Chr(12) перенос страницы (hex 0C) |
| \h |
[ \t] любой горизонтальный пробел, табуляция - Chr(9), Chr(32), Chr(160) |
| \H |
[^\h] - любой символ, который не пробел или табуляция |
| \K |
reset start of match. |
| \n |
@LF, Chr(10) - символ перехода на новую строку (hex 0A) |
| \N |
[^\n] Любой символ, который не символ перехода на новую строку (не @LF). Не работает в 3.3.6.1 |
| \Q ... \E |
любые метасимволы между \Q и \E воспринимаются как текст. Не исключайте ошибки: \QD:\Edit\1.txt\E |
| \r |
@CR, Chr(13) - символ возврат каретки (hex 0D) |
| \R |
[\n\f\r\v] Chr(10), Chr(11), Chr(12), Chr(13) любой из символов переноса строки |
| \t |
@TAB, Chr(9) символ табуляции - tab (hex 09) |
| \v |
[\r\n\f] Chr(10), Chr(11), Chr(12), Chr(13) вертикальная табуляция (@CR и @LF и перенос страницы) |
| \V |
[^\v] - любой символ, который не Chr(10), Chr(11), Chr(12), Chr(13) вертикальная табуляция (перенос строки) |
| \x** |
где * - любая шестнадцатеричная цифра, например \x41 соответствует латинской букве 'A', \x50\x65\x72\x6C - слово Perl |
| \x{**..} |
где * - любая шестнадцатеричным цифра, например \x{50}\x{65}\x{72}\x{6C}
- слово Perl. Попробуйте от \x{01} до \x{7F}, что в десятеричной
системе означает символы от 1 до 127. Или в UTF кодировке \x{044F}
равный символу "я" |
| \*** |
где * - любая восьмеричная цифра. Например, последовательность
\120\145\162\154 представляет слово Perl (\120 - восьмеричный код буквы
Р, \145 - буквы е, \162 - буквы r, \154 - буквы l). Пробел - \040.
Попробуйте от \001 до \177, что в десятеричной системе означает символы
от 1 до 127 |
| \G |
обозначает точку, в которой закончился предыдущий поиск (first matching position in subject) |
| \d | [0-9] - любая десятичная цифра |
| \D |
[^0-9] любая не цифра |
| \s |
[\f\n\r\t\v ] - пустой символ: Chr(9), Chr(10), Chr(12), Chr(13),
Chr(32) (перенос страницы, табуляция, возврат каретки, перевод строки и
пробел). |
| \S |
[^\f\n\r\t\v ] - любой непробельный символ |
| \w |
[0-9a-zA-Z_] - любой алфавитно-числовой символ или подчеркивание (только символы латинского алфавита) |
| \W |
[^0-9a-zA-Z_] - любой символ неслова |
| \A | Начало текста, не зависит от флага "(?m)" и поэтому может встретится только 1 раз |
| \z |
Исключительно конец текста, не зависит от флага "(?m)" и поэтому может встретится только 1 раз |
| \Z |
Конец текста, т. е. граница между любым символом и концом текста или до
символа \n, если он в конце строки, не зависит от флага "(?m)" и поэтому
может встретится только 1 раз. |
| \b |
начало или конец слова, т. е. граница между символами, один из которых
удовлетворяет \W, а другой - удовлетворяет \w (только границы слов
английского алфавита) |
| \B |
Середина слова, т. е. граница между символами, оба которых удовлетворяют \W или оба которых удовлетворяют \w |
| (?i) | не учитывать регистр символов. Это работает только для символов латинского алфавита. |
| (?-i) |
отменяет ранее включенный (?i) |
| (?m) |
в многострочном тексте символы ^ и $ означают начало и конец строки соответственно, иначе начало и конец текста |
| (?-m) |
отменяет ранее включенный (?m) |
| (?s) |
символ "точка" (.) дополнительно включает в себя перенос строки в многострочных текстах, иначе только любой символ |
| (?-s) |
отменяет ранее включенный (?s) |
| (?x) |
режим без учёта пробелов между частями регулярного выражения и позволяет
использовать # для комментариев. Пробелы позволяют сделать образец
лучше читаемым. Пример комментариев - (?#text). Текст после символа # и
до закрывающей скобки ) игнорируется интерпретатором и используется для
добавления комментария непосредственно в регулярное выражение. |
| (?-x) |
отменяет ранее включенный (?x) |
| (?J) |
allow duplicate names (разрешает дубликаты/двойные названия). |
| (?U) |
инвертировать жадность квантификаторов |
| (?-U) |
отменяет ранее включенный (?U) |
| (?i:...) | группа не учитывает регистр символов, например (?i:Text) |
| (?-i:...) | группа учитывает регистр символов, например (?-i:Text) |
| (?:...) | исключить группу из найденных, например (?:Text) |
| (?>...) | группа не входящая в поиск, но имеет свойство ревнивого квантификатора, например (?>Text)(Text) |
| (?=...) | группа не входящая в поиск, но проверяющая совпадение образца справа, например (Text)(?=Text) |
| (?!...) | группа не входящая в поиск, но проверяющая не совпадение образца справа, например (Text)(?!Text) |
| (?<=...) | группа не входящая в поиск, но проверяющая совпадение образца слева, например (?<=Text)(Text) |
| (?<!...) | группа не входящая в поиск, но проверяющая не совпадение образца слева, например (?<!Text)(Text) |
| {n} | повторить предыдущий символ n раз |
| {n,} |
повторить предыдущий символ n и более раз ( {n,}? - предпочтительно наименьший захват) |
| {,n} |
повторить предыдущий символ от 0 до n раз |
| {n, m} |
повторить предыдущий символ от n до m раз ( {n,m}? - предпочтительно наименьший захват) |
| * |
повторить предыдущий символ 0 и более раз. То же что и {0,} |
| + |
повторить предыдущий символ 1 и более раз. То же что и {1,} |
| ? |
предыдущий символ либо имеется, либо не имеется. То же что и {0, 1}.
Второе значение символа ? после символа повтора .*? - жадность, см. ниже |
| *? |
повторить предыдущий символ 0 и более раз. Ограничится первым найденным
образцом, иначе включить всё до последнего найденного образца. |
| +? |
повторить предыдущий символ 1 и более раз. Ограничится первым найденным
образцом, иначе включить всё до последнего найденного образца. |
| *+ |
захватывающие ноль или больше последовательных совпадений |
| ?? |
предпочтительно наименьший захват, например [a-z]?? |
| *+ | захватывается большее совпадение, например (.*+)! захватывает знак ! не оставляя |
| ++ |
захватывается большее совпадение, например (.++)! захватывает знак ! не оставляя. |
| {n,}+ |
захватывается большее совпадение, например (.{2,}+)! захватывает знак ! не оставляя. |
| [:alnum:] | буквы и цифры [0-9A-Za-z] (как \w, но без "_") |
| [:alpha:] |
буквы [A-Za-z] (без "_") |
| [:ascii:] |
символы от Chr(0) до Chr(127) |
| [:blank:] |
пробел и символ табуляции Chr(9) и Chr(32), тоже что [\t ] |
| [:cntrl:] |
управляющие символы от Chr(0) до Chr(31) и Chr(127) |
| [:digit:] |
десятичные цифры, тоже что \d, [0-9] |
| [:graph:] |
тоже что символы, отображаемые при печати [:print:], но кроме пробела (от Chr(33) до Chr(126) ) |
| [:lower:] |
прописные буквы [a-z] |
| [:print:] |
символы, отображаемые при печати, включая пробел (от Chr(32) до Chr(126) ) |
| [:punct:] |
символы, отображаемые при печати, кроме букв и цифр Chr=(33-47, 58-64,
91-96, 123-126), те, что не входят ни в [:alnum:], ни в [:cntrl:] |
| [:space:] |
пробельные символы (как \s, но включая символ VT: Chr(11) ) от Chr(9) до Chr(13) и Chr(32). Тоже что [\f\n\r\t\v ] |
| [:upper:] |
заглавные буквы [A-Z] |
| [:word:] |
символы слов, тоже что \w |
| [:xdigit:] |
шестнадцатеричные цифры [0-9A-Fa-f] |
| (?(condition)yes-pattern) | например (?(?=[a-z])\d), расшифровка (?(условие)шаблон_при_успехе) |
| (?(condition)yes-pattern|no-pattern) |
например (?(?<=\d)a|b) или
(?:(?>(?=[^a-z]*[a-z])())?(?:(?=\1)aa|(?!\1)1)), расшифровка
(?(условие)шаблон_при_успехе|шаблон_при_не_успехе) |
| (?=[\w]+)| (?R) |
рекурсивный вызов |
| \p | любой символ пунктуации |
| \l |
означает, что следующий символ регулярного выражения преобразуется в нижний регистр. |
| \u |
означает, что следующий символ регулярного выражения преобразуется в верхний регистр. |
| \L...\Е |
означает, что все символы в регулярном выражении между \L и \Е преобразуются в нижний регистр. |
| \U...\Е |
означает, что все символы в регулярном выражении между \U и \Е преобразуются в верхний регистр. |
| \x |
любой шестнадцатеричный символ |
| \< |
начало слова, т. е. граница между символом, удовлетворяющим \W и символом, удовлетворяющим \w |
| \> |
конец слова, т. е. граница между символом, удовлетворяющим \w и символом, удовлетворяющим \W |
| .* | повтор любого символа, а значит весь текст |
| [ ... ] |
одиночный символ множества, например [aeiou] - любой из строчных гласных |
| [^ ... ] |
ни один из символов множества, например [^aeiou] - ни один из строчных гласных |
| [0-9A-Fa-f]{6} |
Шестнадцатеричное число, например FF0000. |
| [А-яЁё] |
диапазон для русских букв. Или так [А-Яа-яЁё] |
| Найти (\r\n|\r|\n){2,} заменить на \1 - удаляет пустые строки |
| Найти (?<![^\s\A])([А-яЁё]+)[\h]+\1 заменить на \1 - удаляет повторы слов |
| Найти [A-ZА-ЯЁ]{2,}?[a-zа-яё]+ - выявляет файлы, в которых есть ошибки вида "НАйти"- не преднамеренный повтор заглавной буквы |
| Найти (.{35,}?[ ])(.*?) заменить на '$0'&@CRLF - выполняет перенос строки на границе первого попавшегося пробела после каждых 35 символов. |
| Найти (?si)(?:.*?)?(https?:\/\/[\w.:]+\/?(?:[\w\/?&=.~;\-+!*_#%])*) - найти ссылки |
| Найти [A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}) - найти почтовые ящики |