1CLenta.ru  

Регулярные выражения

Программирование системы     01.05.2016 17:13     2927

Регулярные выражения (Regular expressions) - это язык создания логических выражений из символов и метасимволов для поиска подстрок в тексте. Логические выражения называют шаблон(Pattern) или маска поиска. В различных типах регулярных выражений набор специальных символов может отличаться. Существует набор символов ( [, ] , , /, ^, $, ., |, ?, *, +, (, ), {, } ) для создания регулярных выражений.

Таблица конструкций регулярных выражений


Выражение Описание
[...] Последовательность символов
[^...] Не должны присутствовать символы
^ Начало текста (при многострочном поиске строки)
$ Конец текста (конец строки при многострочном поиске)
{n} Повторять n раз
{m,n} Повторять от m до n раз
{m,} Повторов не менее m
{,n} Повторов не более n
? 0 или 1 повтор
* 0 или более повторов
+ 1 или более повторов
. Один любой символ
$ Конец текста (конец строки при многострочном поиске)
| Логическое ИЛИ
(...) Группа с захватом - строка найденная по всему выражению содержит подстроку найденную по скобочному выражению. Проверяет наличие в тексте, скобочного выражения. Подстрока найденная по скобочному выражению добавляется в список найденных элементов.
(?:...) Группа с захватом - строка найденная по всему выражению содержит подстроку найденную по скобочному выражению. Проверяет наличие в тексте, скобочного выражения. Подстрока найденная по скобочному выражению не добавляется в список найденных элементов.
(?=...) Группа без захвата - строка найденная по всему выражению не содержит подстроку найденную по скобочному выражению. Группа для позитивной опережающей проверки справа. Продолжает поиск до тех пор пока справа от текущей позиции расположено скобочное выражение. Подстрока найденная по скобочному выражению не добавляется в список найденных элементов.
(?!...) Группа без захвата - строка найденная по всему выражению не содержит подстроку найденную по скобочному выражению. Группа для негативной опережающей проверки справа. Продолжает поиск до тех пор пока справа от текущей позиции не расположено скобочное выражение. Подстрока найденная по скобочному выражению не добавляется в список найденных элементов.
(?<=...) Группа без захвата - строка найденная по всему выражению не содержит подстроку найденную по скобочному выражению. Группа для позитивной ретроспективной проверки слева. Продолжает поиск до тех пор пока слева от текущей позиции расположено скобочное выражение. Подстрока найденная по скобочному выражению не добавляется в список найденных элементов.
(?<!...) Группа без захвата - строка найденная по всему выражению не содержит подстроку найденную по скобочному выражению.. Группа для негативной ретроспективной проверки слева. Продолжает поиск до тех пор пока слева от текущей позиции не расположено скобочное выражение. Подстрока найденная по скобочному выражению не добавляется в список найденных элементов.

Таблица популярных последовательностей символов


Код Описание
^ Начало слова
B Конец слова
\t Табуляция
u Символ в верхнем регистре
l Символ в нижнем регистре
d Любая цифра, соответствует [0-9]
D Любой не числовой символ, соответствует [^0-9]
s Любой символ whitespace, соответствует [fv]
S Любой символ не whitespace, соответствует [^fv]
w Любая буква или цифра, соответствует [a-zA-Z0-9_]
W Любой символ кроме буквы и цифры, соответствует [^a-zA-Z0-9_]

Флаги


В регулярных выражениях могут использовать специальные флаги для управления поиском.
  • i - регистронезависимый поиск
  • m - многострочный поиск
  • g - глобальный поиск (берутся все найденные совпадения)
  • s - текст ввиде одной строки


При программировании на 1С поиск и замена по регулярным выражения доступны через COM объект "VBScript.RegExp".

Комментарии (0)