Вчерне доделал индексацию и поиск в юникодных текстах. Даже формулы ищутся. Много всяких приколов вылезло. Особенно со смешением кодировок. Например есть "кириллический игрек Y". Или альфа вместо А в русских словах. Умляуты, там где не надо. Штрихи оформленные маленькими буквами I в виде надстрочного индекса. Ну и всякое такое. Запрограммировал всё в "функциональном стиле". Вход преобразуется функтором, ну и так по цепочке. Конвейер.
Сделал функцию - ParseByFunctors.
Принимает строку и набор функторов, которые эту строку преобразуют в другую строку или даже набор строк.
Детали может быть позже.
P.S. Например есть слово Yamaha - написано вроде так. А а не ищется. Начинаем разбираться - НИ ОДНОГО латинского символа там нет.
Есть кириллическая Y.
Кириллические A.
Татарская (!) h.
Ну и да - соврал. Один латинский - m.
ОДИН латинский - есть. Ну и тому подобное. А в документе - Yamaha.
А IIV. Римская цифра. Где одна из I это не латинская, а греческая буква.
А заглавная АЛЬФА вместо А?
Или вроде "греческая сигма", заглавная. Ан нет. Есть похожая ЛАТИНСКАЯ буква - называется почти как немецкая "эсцет".
"Латинская Эш" - вот она как называется.
А ещё например метры квадратные то м2 - с верхним индексом. То м и специальный символ - верхняя 2.
Или скажем текст "запылился". Искажения. И получилось Z с черточкой, а не просто Z.
Или слово дОлжным, где над О ударение в виде штриха. Так - в первоисточнике.
А такие штрихи ещё и разные бывают.
Или о-умляут вместо О в русском слове, потому что на бумаге была грязь.
Или слово РОССИЯ, где русские только И и Я. Все остальные - латинские, а то и вообще греческие.
Сделал функцию - ParseByFunctors.
Принимает строку и набор функторов, которые эту строку преобразуют в другую строку или даже набор строк.
Детали может быть позже.
P.S. Например есть слово Yamaha - написано вроде так. А а не ищется. Начинаем разбираться - НИ ОДНОГО латинского символа там нет.
Есть кириллическая Y.
Кириллические A.
Татарская (!) h.
Ну и да - соврал. Один латинский - m.
ОДИН латинский - есть. Ну и тому подобное. А в документе - Yamaha.
А IIV. Римская цифра. Где одна из I это не латинская, а греческая буква.
А заглавная АЛЬФА вместо А?
Или вроде "греческая сигма", заглавная. Ан нет. Есть похожая ЛАТИНСКАЯ буква - называется почти как немецкая "эсцет".
"Латинская Эш" - вот она как называется.
А ещё например метры квадратные то м2 - с верхним индексом. То м и специальный символ - верхняя 2.
Или скажем текст "запылился". Искажения. И получилось Z с черточкой, а не просто Z.
Или слово дОлжным, где над О ударение в виде штриха. Так - в первоисточнике.
А такие штрихи ещё и разные бывают.
Или о-умляут вместо О в русском слове, потому что на бумаге была грязь.
Или слово РОССИЯ, где русские только И и Я. Все остальные - латинские, а то и вообще греческие.
Комментариев нет:
Отправить комментарий