Если вы не можете использовать \s
для пробела Unicode, это ошибка в реализации Ruby regex, поскольку согласно UTS # 18 «Регулярные выражения Unicode» Приложение C о свойствах совместимости a \s
абсолютно необходимо , чтобы соответствовать любой кодовой точке пробела Unicode.
Не допускается использование места для маневра, поскольку две колонки, в которых подробно описаны стандартная рекомендация и совместимость с POSIX, одинаковы для случая \s
. Вы не можете задокументировать свой путь: вы не соответствуете стандарту Unicode, в частности, UTS # 18 RL1.2a , если вы этого не сделаете.
Если вы не соответствуете требованиям RL1.2a, вы не соответствуете требованиям уровня 1, которые являются наиболее базовой и элементарной функциональностью, необходимой для использования регулярных выражений в Unicode. Без этого вы в значительной степени потеряны. Вот почему существуют стандарты. Насколько я помню, Ruby также не удовлетворяет ряду других требований уровня 1. Поэтому вы можете использовать язык программирования, который соответствует как минимум уровню 1, если вам действительно нужно обрабатывать Unicode с регулярными выражениями.
Обратите внимание, что вы не можете использовать свойство общей категории Unicode, например \p{Zs}
, для обозначения \p{Whitespace}
. Это потому, что свойство Whitespace является производным свойством, а не общей категорией. В него также включены управляющие символы, а не только разделители.