Регулярки для юристов
Регулярные выражения (регулярки, RegExp) — специальный инструмент в языках программирования для автоматизации анализа текстов.
Это своего рода "швейцарский нож", позволяющий создавать паттерны (узоры) — требования к искомому образу текста.
Например, с их помощью можно находить только те слова, после которых стоят числа с заданным количеством цифр, проверять корректность телефонных номеров, веб-ссылок, адресов e-mail и так далее.
Ниже приведена таблица, иллюстрирующая работу регулярок на JavaScript на примере слова "суд".
— если индикатор горит жёлтым — этот браузер не поддерживает соответствующие регулярки.
в колонке "подойдёт" жирным выделено то, что будет захвачено такой регуляркой,
а зелёным цветом — то, что требуется для удовлетворения условию захвата
таблица иллюстраций работы некоторых регулярок для буквосочетания "суд" (дополняется...)
описание | литеральная запись | запись через конструктор | тест | подойдёт | не подойдёт |
найти сочетание (регистронезависимо) | /суд/i | new RegExp('суд', 'i'); | Судебный | пойти в уд | |
найти сочетание (регистрозависимо) | /суд/ | new RegExp('суд', ''); | судебный | СУДЕБНЫЙ; Судебный | |
найти сочетание в начале строки | /^суд/ | new RegExp('^суд', 'i'); | судебный сбор | найти судебный сбор | |
найти буквосочетание в конце строки | /суд$/ | new RegExp('суд$', 'i'); | найти суд | судебный сбор | |
найти сочетание после пробела | /\sсуд/ | new RegExp('\sсуд', 'i'); | найти суд | судебный сбор | |
найти сочетание перед пробелом | /суд\s/ | new RegExp('суд\s', 'i'); | суд справедливости | судебный сбор | |
найти буквосочетание между пробелами | /\sсуд\s/ | new RegExp('\sсуд\s', 'i'); | этот суд справедлив | досудебный; в суде | |
найти сочетание после не-пробела | /\Sсуд/ | new RegExp('\Sсуд', 'i'); | не-суд | это суд | |
найти сочетание перед не-пробелом | /суд\S/ | new RegExp('суд\S', 'i'); | суд-в-городе | суд этот | |
найти сочетание между не-пробелами | /\Sсуд\S/ | new RegExp('\Sсуд\S', 'i'); | некий-суд-в-городе | суд этот; это суд | |
найти сочетание после набора кириллицы а-яіїєґ | /[а-яіїґ]суд/ | new RegExp('[а-яіїґ]суд', 'i'); | досудебный | это судебный | |
найти сочетание перед набором кириллицы а-яіїєґ | /суд[а-яіїґ]/ | new RegExp('суд[а-яіїґ]', 'i'); | досудебный | суд этот | |
найти сочетание между наборами кириллицы а-яіїєґ | /[а-яіїґ]суд[а-яіїґ]/ | new RegExp('[а-яіїґ]суд[а-яіїґ]', 'i'); | досудебный | суд этот; это суд | |
найти одно из сочетаний | /(суд|медиация)/ | new RegExp('(суд|медиация)', 'i'); | судья; медиация | медиатор | |
найти сочетание после сочетаний | /(?<=(до|вне))суд/ | new RegExp('(?<=(до|вне))суд', 'i'); | досудебный; внесудебный | антисудебный | |
найти сочетание перед сочетаниями | /суд(?=(ебный|ебного))/ | new RegExp('суд(?=(ебный|ебного))', 'i'); | досудебный; досудебного | досудебному; досудебным | |
найти сочетание после не-сочетаний | /(?<!(до|вне))суд/ | new RegExp('(?<!(до|вне))суд', 'i'); | антисудебный | досудебный; внесудебный | |
найти сочетание перед не-сочетаниями | /суд(?!(ебный|ебного))/ | new RegExp('суд(?!(ебный|ебного))', 'i'); | досудебному | досудебный; досудебного | |
найти как сочетание, так и сочетание с повторяющейся буквой | /су+д/ | new RegExp('су+д', 'i'); | судья; суудья; сууууудья | суцдья | |
найти сочетание с повтором символа не более 3 раз | /су{1,3}д/ | new RegExp('су{1,3}д', 'i'); | судья; суудья; сууудья | суууудья |
Больше информации здесь: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/RegExp