Поиск фрагмента текста

Для решения некоторых задач необходимо искать определенный фрагмент текста, например, предложение, строку, абзац или целый документ. В таких случаях можно использовать функции sentence(), line(), paragraph() и document() без аргументов.

Синтаксис

sentence()

line()

paragraph()

document()

Без указания аргументов эти функции ищут все аргументы в пределах одного предложения, строки, абзаца или документа соответственно.

Подробнее о том, как работают эти функции при указанных аргументах можно узнать в разделе "Поиск аргументов в произвольном порядке".

Пример

sentence() найдет все предложения.

line() найдет все строки.

paragraph() найдет все абзацы.

document() найдет все документы.

case(upper, paragraph()) найдет все абзацы, написанные в верхнем регистре, например, «ПОСЛЕДНИЕ НОВОСТИ», «ПОПУЛЯРНЫЕ КОММЕНТАРИИ».

lemma(noun, line()) найдет все строки, состоящие из существительных, например, «Дизайн сайта — студия Формограф».

case(lower, document()) найдет все документы, написанные в нижнем регистре, например, «10 самых перспективных российских деятелей искусства».

length(2, 5, sentence(), count:=word) найдет все предложения, состоящие от 2 до 5 слов, например, «Изменения вносятся в Трудовой кодекс», «Стройка останавливается до осени».

Пример задачи: Найти заголовки новостных статей

Для того, чтобы решить эту задачу, можно составить запрос length(3, 10, paragraph(), count:=word).

pdl fragment search rus

Этот запрос найдет абзацы, состоящие от 3 до 10 слов. При этом в результат попадет дата в квадратных скобках.

Чтобы исключить из результатов поиска дату и время создания статьи, можно запретить поиск квадратных скобок при помощи оператора /: (3, 10, paragraph()/"[", count:=word).

pdl fragment search 2 rus