Возможна проблема с определением длины строк Unicode. Подробнее о нормализации см. эту страницу в документации для разработчиков Twitter.
Количество символов будет зависеть от настроенной вами локали. Вы можете запустить locale
, чтобы убедиться, что у вас настроена локаль UTF-8. Как только это будет сделано, код от @stephen-rauch должен работать.
В зависимости от того, какую библиотеку регулярных выражений вы используете, вы также можете использовать именованные скрипты, такие как \p{иврит}
и \P{греческий}
Вот пример использования \P{иврит}
для удаления всех нееврейских символов: Ссылка
Отредактировано: первоначальные результаты были получены из-за неправильно настроенной локали