В PCRE, \x{####}
может использоваться как эквивалент \u####
.
JavaScript.
Во-вторых, шаблон JavaScript должен соответствовать кодовым точкам, закодированным с использованием UTF-16. Но поскольку мы будем сопоставлять сами кодовые точки в PCRE, нам нужно «декодировать» суррогатные пары.
После внесения обоих изменений мы получаем:
[\xA9\xAE\x{2000}-\x{3300}\x{1F000}-\x{1FBFF}]
(Я не знаю Lua, поэтому я оставлю это для предоставления строкового литерала, который производит эту строку.)
Обратите внимание, что ваш шаблон больше соответствует тому, что большинство людей считают эмодзи. Emojis находятся в блоке "Смайлики". Этот блок (в настоящее время) охватывает кодовые точки U + 1F600 до U + 1F64F. В Perl вы можете использовать \p{Block=Emoticons}
или даже просто \p{Emoticons}
, чтобы сопоставить их, но они, похоже, не поддерживаются PCRE. Чтобы соответствовать только смайликам, вы должны использовать следующее:
[\x{1F600}-\x{1F64F}]