Перейти к содержимому

Регулярное расширение

В последнем снапшоте DataparkSearch добавлена возможность расширения поисковых запросов при помощи регулярных шаблонов замены. В первую очередь это полезно при поиске по номеру телефона, - как правило их записывают разными способами.

Например, по запросу 8622-64-24-24 Сочи будет найден и телефонный номер, записанный в канонической форме +78622642424.

Воспользоваться этой возможностью можно на сайте Интернет Сочи при поиске по базе телефонных номеров.

На данный момент, ни Гугл, ни тем более Яндекс такой фичи не поддерживают.

Регулярные шаблоны задаются при помощи специальных комментариев в файле акронинов и аббревиатур, начинающиеся с пары символов #*, а затем следуют аргументы и опции, такие же как и для команд ReverseAlias. Также добавлена специальная опция last, приводящая к завершению цикла применения регулярных шаблонов при применении указанного шаблона (эта же опция добавлена и для команд Alias и ReversAlias).

Пример таких регулярных шаблонов, реализующих расширение поиска по телефонному номеру:


#* regex last "(\+7|8)[- \.\(]*(862)[- \.\)]*([0-9])[- \.\)]*([0-9]{2})[- \.]*([0-9])[- \.]*([0-9])[- \.]*([0-9]{2})" "+7$2$3$4$5$6$7"
#* regex last "(\+7|8)[- \.\(]*(9[0-9]{2})[- \.\)]*([0-9])[- \.\)]*([0-9]{2})[- \.]*([0-9])[- \.]*([0-9])[- \.]*([0-9]{2})" "+7$2$3$4$5$6$7"
#* regex last "\(862[- \.\)]*([0-9]?)[- \.\)]*([0-9]{2,3})[- \.]*([0-9]{2,3})[- \.]*([0-9]{2,3})" "+7862$1$2$3$4$5"
#* regex last "([0-9]{2})[- \.]?([0-9]{2})[- \.]?([0-9]{2})" "+78622$1$2$3"

2 thoughts on “Регулярное расширение

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *