Поиск пунктуации и специальных символов
Для поиска пунктуации можно использовать тот же синтаксис, что и для поиска слов, однако при поиске пунктуации кавычки обязательны.
Внутренние кавычки нужно экранировать обратным слешем или кавычками.
Несколько знаков, заключенных в кавычки, трактуются как последовательность.
Пример
Пример задачи: Поиск упоминаний о компании «Сухой»
Для поиска упоминаний о компании «Сухой» можно составить запрос case(Сухой). Данный запрос ищет в тексте все формы слова «сухой» с заглавной буквы. Однако данный запрос возвращает много ложных результатов.
Чтобы исключить ошибочные результаты, можно указать, что слово «Сухой» должно встречаться в кавычках. Это можно сделать с помощью запроса:
phrase("\"", case(Сухой), "\"")
Кроме того, для поиска знаков пунктуации, специальных символов (#, @, % …) и токенов специальных категорий (см. ниже) используется функция char().
Синтаксис
Параметр категория позволяет указать категорию токена и может принимать одно из нижеперечисленных значений:
Категория |
Синоним |
Пояснение |
alpha |
a |
токены, состоящие только из алфавитных символов |
alnum |
an, alphanum |
токены, состоящие из алфавитных и числовых символов |
numeral |
n, num |
числа в любом написании (например, 125, 713.446.9307, 1-ый и т.д.) |
digit |
d |
числа, состоящие только из цифр (без запятых, точек, слешей и т.д.) |
special |
sp |
не алфавитные и не числовые символы (например, #, @, &, % и т.д.) |
word |
w |
alpha|alnum|numeral|special |
punct |
p |
любой пунктуационный знак |
bracket |
br |
символ открывающей или закрывающей скобки |
colon |
col, ":" |
символ двоеточия |
comma |
"," |
символ запятой |
dot |
"." |
символ точки |
exclamation |
excl, "!" |
символ восклицательного знака |
hyphen |
hp, "-" |
символ тире/дефиса |
lbracket |
lb, "(" |
символ открывающей скобки |
rbracket |
rb, ")" |
символ закрывающей скобки |
question |
qm, "?" |
символ вопросительного знака |
semicolon |
sc, ";" |
символ точки с запятой |
slash |
sl, "/" |
символ слеш |
quote |
qt |
символ любой кавычки |
lquote |
lqt |
символ любой левой кавычки |
rquote |
rqt |
символ любой правой кавычки |
squote |
sq, "'" |
символ одинарной кавычки |
lsquote |
lsq, ‘ |
символ левой одинарной кавычки |
rsquote |
rsq, ’ |
символ правой одинарной кавычки |
dquote |
dq, "\"" |
символ двойной кавычки |
ldquote |
ldq, « |
символ левой двойной кавычки |
rdquote |
rdq, » |
символ правой двойной кавычки |
plus |
pl, "+" |
символ плюс |
plusminus |
pm, ± |
символ плюс-минус |
equal |
eq, "=" |
символ равно |
less |
ls, "<" |
символ меньше |
greater |
gr, ">" |
символ больше |
tilde |
td, ~ |
символ тильды |
vline |
vl, "|" |
символ вертикальной черты |
arabic |
токены, состоящие из символов арабского алфавита |
|
chinese |
токены, состоящие из символов китайского алфавита |
|
cyrillic |
токены, состоящие из символов кириллического алфавита |
|
greek |
токены, состоящие из символов греческого алфавита |
|
hiragana |
токены, состоящие из символов алфавита хирагана |
|
katakana |
токены, состоящие из символов алфавита катакана |
|
korean |
токены, состоящие из символов корейского алфавита |
|
latin |
токены, состоящие из символов латинского алфавита |
|
mixed |
токены, состоящие из символов разных алфавитов |
Несколько пунктуационных знаков, заключенных в кавычки, рассматриваются как последовательность, т.е. char("?!") находит ?!.
Если параметр категория является единственным аргументом, функция находит все токены указанной категории.
Пример
Если помимо параметра категория указаны другие аргументы, функция находит только те вхождения аргументов, которые соответствуют указанной категории токенов.
Чтобы сузить поиск, можно перечислить параметры категории и алфавита через знак нижего подчеркивания «_». Категория может быть только одна, а алфавитные параметры не ограничены.
Пример