Nitra и UTF-16
От: WolfHound  
Дата: 21.04.16 18:23
Оценка:
Встал вопрос как написать стандартное правило Any

Вариант первый: только корректные UTF-16 последовательности.
regex HighSurrogates = ['\uD800'..'\uDBFF'];
regex LowSurrogates  = ['\uDC00'..'\uDFFF'];
regex NonSurrogates  = ['\u0000'..'\uD7FF', '\uE000'..'\uFFFD'];
regex Any = HighSurrogates LowSurrogates | NonSurrogates;


Вариант второй: корректные UTF-16 суррогаты и все остальные символы. Включая битые суррогаты и прочий мусор.
regex HighSurrogates = ['\uD800'..'\uDBFF'];
regex LowSurrogates  = ['\uDC00'..'\uDFFF'];
regex Any = HighSurrogates LowSurrogates | ['\u0000'..'\uFFFF'];
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Отредактировано 21.04.2016 18:28 VladD2 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.