Обновить

Комментарии 10

Есть кириллическая ё (йо), а есть латинская e-diaeresis (она же umlaut).
Хуже того, помимо цельной буквы, ещё есть комбинируемые диакритические знаки, которые умеют прилепляться к букве обычной (на маках распространено).
И та же история с буквами i и ï, а может и ещё с какими-то.
Всё сложно.

Да и с "й" тоже. Помнится при какой-то конвертации музыки мне в тегах что-то заменило обычную Й на комбинацию из И, ZWJ и диакритика — и потом из-за бага в рокбоксе и фубаре палка от оной съезжала на буквы так четыре вперёд.

Об отвале башки декомпозиции и краткого на Хабре и статья была: https://habr.com/ru/articles/262679/

P.S. А иногда бывает даже "и дважды краткое": й̆

Спасибо за ссылку, интересная статья!

$: echo 'ёжик' | grep -Po '[а-я]+'
жик
$: echo 'ёжик' | grep -Eo '[а-я]+'
ёжик

Благодарю!

Вы могли бы подробнее описать, как влияют параметры -Po и -Eo ?

И от чего ещё может зависеть результат?


Попробовал на своем Альт-Линуксе в терминале, оба варианта дали

жик

жик

хочу всех предупредить - с «ё» будьте поосторожней!

по рассказу выходит так, что с «а» и многими другими буквами у вас произошла бы ровно такая же проблема:

Он живет во Франции, у них этот символ имеет другую кодировку, хотя по начертанию точно такой же.

>по рассказу выходит так, что с «а» и многими другими буквами у вас произошла бы ровно такая же проблема

Если ставить латинскую "a", то конечно - проблема очевидная.

У меня другой товарищ написал для DOS русификатор, назвал его VRUN, этот русификатор сознательно врал и частично использовал латинские буквы :)

чтобы не страдать ерундой в следующий раз, запускайте xev
и смотрите что возвращает клавиатура

KeyPress event, serial 48, synthetic NO, window 0xa800001, root 0x2a4, subw 0x0, time 65442733, (1007,186), root:(1008,204), state 0x2010, keycode 49 (keysym 0x6a3, Cyrillic_io), same_screen YES, XLookupString gives 2 bytes: (d1 91) “ё” XmbLookupString gives 2 bytes: (d1 91) “ё” XFilterEvent returns: False

KeyRelease event, serial 48, synthetic NO, window 0xa800001, root 0x2a4, subw 0x0, time 65442894, (1007,186), root:(1008,204), state 0x2010, keycode 49 (keysym 0x6a3, Cyrillic_io), same_screen YES, XLookupString gives 2 bytes: (d1 91) “ё” XFilterEvent returns: False

Я в тот раз так вычислил:

скопировал символ из текста программы в Excel, A1

= КОДСИМВ(A1) выдал код

потом в соседней ячейке кнопкой ввел, и так же проверил

Коды оказались разные

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации