Сначала удалите символическую ссылку на существующий Python, используя
sudo rm -r / usr / bin / python
Затем создайте новую ссылку на python для python-2.7
sudo ln -s / usr / local /bin/python2.7 / usr / bin / python
Используя python, вы можете сделать что-то вроде этого:
# coding: utf-8
import re
import codecs
#find_hebrew = re.compile(ur'[\u0590-\u05ff]+') # python 2
find_hebrew = re.compile(r'[\u0590-\u05ff]+') # python 3
count = 0
with codecs.open('text_file', 'rU', encoding='utf-8') as f:
for line in f.readlines():
for n in find_hebrew.findall(line):
count += len(n)
print(count)
62
Возможна проблема с определением длины строк Unicode. Подробнее о нормализации см. эту страницу в документации для разработчиков Twitter.
Количество символов будет зависеть от настроенной вами локали. Вы можете запустить locale
, чтобы убедиться, что у вас настроена локаль UTF-8. Как только это будет сделано, код от @stephen-rauch должен работать.
В зависимости от того, какую библиотеку регулярных выражений вы используете, вы также можете использовать именованные скрипты, такие как \p{иврит}
и \P{греческий}
Вот пример использования \P{иврит}
для удаления всех нееврейских символов: Ссылка
Отредактировано: первоначальные результаты были получены из-за неправильно настроенной локали
Мне кажется, что они близки (протестированы на Ubuntu 16.04)
$ perl -0777 -MEncode -ne 'print decode("UTF-8",$_) =~ tr/\x{0590}-\x{05ff}//,"\n"' input
62
$ perl -0777 -MEncode -ne 'print decode("UTF-8",$_) =~ tr/\p{Hebrew}//,"\n"' input
63
Я не уверен, каким должен быть «правильный» ответ.