Ищет в строке совпадения с образцом, заданным в виде регулярного выражения.
| ( ) | начало и конец группы, например (text). Означают последовательность. Используются для применения квантификаторов не к одному символу, а к нескольким, а также для дальнейшего использования найденной последовательности. 
 | 
| [ ] | начало и конец описания символьного класса, например [a-z]. Символьный класс возвращает один символ из множества. Изменить это могут повторители. 
 | 
| { } | начало и конец повторителей, например {3,8} 
 | 
| \ | экранирующий символ, принять метасимвол как обычный символ, например (\\, \., \[, \], \{, \}, \*). 
 | 
| ^ | начало строки (или начало текста в многострочных текстах), например ^text text$ 
 | 
| $ | конец строки (или конец текста в многострочных текстах), например ^text text$ 
 | 
| . | любой символ, кроме переноса строки @LF (по умолчанию). С флагом (?s) - любой символ 
 | 
| | | символ "или", обычно внутри группы, например (10|20) 
 | 
| ? | предыдущий символ либо имеется, либо не имеется, аналогично и для групп. После символа повтора - жадность паттерна - (.*?) 
 | 
| * | повтор предыдущего символа или группы 0 и более раз 
 | 
| + | повтор предыдущего символа или группы 1 и более раз 
 | 
| \1 - \9 | ссылка на найденную группу в самом шаблоне и в шаблоне замены 
 | 
| $1 - $9 | ссылка на найденную группу в шаблоне замены (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) | символ "точка" (.) дополнительно включает в себя перенос строки @LF (режим "одна строка") 
 | 
| (?-s) | отменяет ранее включенный (?s) 
 | 
| (?x) | игнорирует пробелы и табуляции в регулярном выражении, кроме тех что в квадратных скобках. Пробелы позволяют сделать регулярное выражение легко читаемым. Позволяет в конце рег. выр. добавить комментарий после символа # и до конца строки 
 | 
| (?-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) | 
| (?<name>...) | именованная ссылка. Вызов именованной ссылки \k<name> это тоже что вызов \1 или $1 | 
| (?#...) | группа содержащая комментарий, например (?# это комментарий ). Полностью игнорируется интерпретатором 
 | 
| {n} | повторить предыдущий символ n раз 
 | 
| {n,} | повторить предыдущий символ n и более раз ( {n,}? - предпочтительно наименьший захват) 
 | 
| {n, m} | повторить предыдущий символ от n до m раз ( {n,m}? - предпочтительно наименьший захват) 
 | 
| * | повторить предыдущий символ 0 и более раз. То же что и {0,}. Жадный захват, наибольший, который позволит совпасть оставшейся части шаблона. 
 | 
| + | повторить предыдущий символ 1 и более раз. То же что и {1,}. Жадный захват, наибольший, который позволит совпасть оставшейся части шаблона. 
 | 
| ? | предыдущий символ либо имеется, либо не имеется. То же что и {0, 1}. Второе значение символа ? после символа повтора .*? - жадность, см. ниже 
 | 
| *? | повторить предыдущий символ 0 и более раз. Ограничится наименьшим захватом (не жадный), который позволит совпасть оставшейся части шаблона. 
 | 
| +? | повторить предыдущий символ 1 и более раз. Ограничится наименьшим захватом (не жадный), который позволит совпасть оставшейся части шаблона. 
 | 
| ?? | предпочтительно наименьший захват, например ([a-z]??)g для 'gg' возвращает две пустые строки 
 | 
| [: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] 
 | 
| \p | любой символ пунктуации 
 | 
| \l | означает, что следующий символ регулярного выражения преобразуется в нижний регистр. 
 | 
| \u | означает, что следующий символ регулярного выражения преобразуется в верхний регистр. 
 | 
| \L...\Е | означает, что все символы в регулярном выражении между \L и \Е преобразуются в нижний регистр. 
 | 
| \U...\Е | означает, что все символы в регулярном выражении между \U и \Е преобразуются в верхний регистр. 
 | 
| \x | любой шестнадцатеричный символ 
 | 
| \< | начало слова, т. е. граница между символом, удовлетворяющим \W и символом, удовлетворяющим \w 
 | 
| \> | конец слова, т. е. граница между символом, удовлетворяющим \w и символом, удовлетворяющим \W 
 | 
| {,n} | повторить предыдущий символ от 0 до n раз 
 | 
| Примеры | 
|---|
| Найти (\r\n|\r|\n){2,} заменить на \1 - удаляет пустые строки | 
| Найти (?<![^\s\A])([А-яЁё]+)[\h]+\1 заменить на \1 - удаляет повторы слов | 
| Найти [A-ZА-ЯЁ]{2,}?[a-zа-яё]+ - выявляет файлы, в которых есть ошибки вида "НАйти"- не преднамеренный повтор заглавной буквы | 
| Найти (.{35,}?)\h заменить на '$1'&@CRLF - выполняет перенос строки на границе первого попавшегося пробела после каждых 35 символов. | 
| Найти (?si)(?:.*?)?(https?://[\w.:]+/?(?:[\w/?&=.~;\-+!*_#%])*) - найти ссылки | 
| Найти [A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}) - найти почтовые ящики | 
См. также