C # Регулярные выражения с символами \ Uxxxxxxxx в шаблоне

Regex.IsMatch( "foo", "[\U00010000-\U0010FFFF]" ) 

Броски: System.ArgumentException: анализ диапазона «[-]» - [x-y] в обратном порядке.

Глядя на шестнадцатеричные значения для \ U00010000 и \ U0010FFF, я получаю: 0xd800 0xdc00 для первого символа и 0xdbff 0xdfff для второго.

Так что, думаю, у меня действительно есть одна проблема. Почему символы Unicode, сформированные с \ U, разделяются на два символа в строке?

Ответы на вопрос(3)

Ваш ответ на вопрос