все Python 3unicodedataфункция
unicodedata.bidirectional()
свойства символов
Возвращает класс направления письма символа: 'L' — слева направо, 'R' и 'AL' — справа налево, 'EN' — цифры и т. д.
Синтаксис
unicodedata.bidirectional(chr, /)
Иврит — 'R', а арабские буквы — отдельный класс 'AL', так что проверка «текст справа налево» должна искать оба. Цифры и пробелы — не 'L', а 'EN' и 'WS': строка '123' не имеет собственного направления. Для неназначенных символов ответ зависит от версии базы и потому от версии Python.
Примеры
import unicodedata
print([unicodedata.bidirectional(c) for c in 'aא\u06275 ']) # → ['L', 'R', 'AL', 'EN', 'WS']
def is_rtl(text):
return any(unicodedata.bidirectional(c) in ('R', 'AL') for c in text)
print(is_rtl('abc'), is_rtl('שלום')) # → False True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности