Условия поиска с регулярными выражениями
В форме лексико-грамматического поиска в “Условие на слово” можно добавлять условия на лемму или форму с регулярными выражениями.
Регулярное выражение – это шаблон, описывающий все возможные варианты лемм или словоформ, попадающих под заданное в нём правило поиска. Правило поиска задается набором односимвольных или многосимвольных элементов и операторов.
Зарезервированные символы
Обработчик регулярных выражений НКРЯ поддерживает все символы Юникода. В качестве операторов зарезервированы следующие символы :
. ? + * @ | { } [ ] ( ) ^ \
Элементарные операторы
Элементарные операторы описывают условия на один символ или неразрывный набор символов внутри леммы или формы, а также условия их повторения.
Шаблон |
Описание |
Пример |
Результат |
[character_group]
|
Соответствует любому отдельному символу в character_group
|
[аи]
|
Буква “а” или буква “и”
|
[^character_group]
|
Отрицание: соответствует любому отдельному символу, который не находится в character_group
|
[^а]
|
Любой символ, кроме буквы “а”
|
[Первый-Последний]
|
Диапазон символов: соответствует любому отдельному символу в диапазоне от первого до последнего
|
[а-я]
|
Любая буква
|
^
|
Символ ^ перед символом в скобках отрицает символ или диапазон
|
к[^ои]т
[^а-я]
|
Не “кот” и не “кит”
Не буква
|
( … )
|
Образует группу, которую можно использовать для подстановки как единый элемент
|
(ка)
|
Буквосочетание “ка”
|
|
|
Соответствует любому элементу из разделенных вертикальной чертой (|)
|
а|и
|
“а” или “и”
|
.
|
Подстановочный знак: соответствует любому символу - букве или цифре
|
с.н
|
"Сын", “сон”, “сан” и другие сочетания из трех символов, где первый — буква “с”, последний — “н”, а в середине любой символ
|
?
|
Соответствует предыдущему элементу ноль или один раз. Часто используется для того, чтобы сделать предыдущий элемент необязательным
|
она?
|
“он” или “она”
|
+
|
Соответствует предыдущему элементу один или более раз
|
не+
|
“не”, “нее”, “неее” и т. д.
|
*
|
Соответствует предыдущему элементу ноль или более раз
|
.*а
|
последовательности символов любой длины, которые заканчиваются на “а”
|
@
|
Соответствует любой последовательности символов
|
г@г
|
последовательности символов любой длины, которые начинаются и заканчиваются на “г”
|
{}
|
Предыдущий элемент повторяется ровно n раз
Предыдущий элемент повторяется как минимум n раз
Предыдущий элемент повторяется как минимум n раз, но не более чем m раз
|
Е{3}
Е{2,}
е{2,3}
|
“Еее”
“ее”, “еее” и больше повторений буквы “е”
“ее”, “еее”
|
Составные шаблоны
С помощью элементарных операторов можно составлять шаблоны, описывающие целые леммы или слова. Для этого необходимо описать условия на отдельные буквы в слове, а также условия их повторения. Например:
Пример |
Шаблон |
Слова с буквосочетанием “ка”, идущим подряд два или три раза
|
.*(ка){2,3}.*
|
Слова из пяти букв
|
…..
|
Слова на букву “й”
|
(й).*
|
Ограничения
Обработчик регулярных выражений НКРЯ не поддерживает операторы привязки, такие как ^ (начало строки) или $ (конец строки). Чтобы найти лемму или форму, шаблон должен соответствовать целой лемме или форме.
Дополнительные условия на слово, как обычно, задаются с помощью меню грамматических, синтаксических и дополнительных признаков.