![]() |
Регулярное выражение для диапазона Юникод
Вложений: 1
Всем привет!
Столкнулся с проблемой. Регулярное выражение не работает, если нужно искать символы в тексте на соответствие диапазону в Юникоде (т.к. диапазоны наверно работают только для символов).. Например, регулярка для поиска суррогатных пар - а именно ищу в тексте иконки Эмоджи, которые выходят за пределы базовой мультиязычной плоскости BMP. Код AS3:
И тут нормально работает http://www.flasher.ru/forum/attachme...chmentid=33311 Уже голову ломаю не один день.. Буду признателен за любую подсказку в этом вопросе. Добавлено через 5 часов 5 минут Все таки диапазоны для юникода тоже работают.. Ищу в тексте иконку снеговика, которому соответствует код U+26с4 (2 байта) Код AS3:
|
Скинь точный пример того что не работает. И точную регулярку, которую используешь для поиска.
|
caseyryan, вот.
Код AS3:
|
Вложений: 1
Хз как это на 100% проверить, у меня в винде не отображаются эти эмодзи, но
я вижу, что твой код в принципе не может их искать. Если подумать, что он делает? Он пытается найти в однострочном тексте, с учетом регистра, один эмодзи, за которым сразу идет другой. При том ищет он не такую последовательность \ud898\udbff а просто \ud800 за которой идет еще одна такая же. Сурогатные пары просто так не ищутся. Попробуй написать так: Код AS3:
Получается вот так, если брать конкретно строку из твоего кода. Я не делал проверку именно диапазонов, потому что все равно не смогу проверить, из-за отсутствия эмодзи в тексте не своем компе) Но если исходный код от инсты именно такой, как в том json, то моя регулярка без проблем его отрабатывает |
Да, я понял что твоя регулярка делает, но в ActionScript тоже не работает... В это и проблема.. Почему так? :(( Хотя на JavaScript нормально срабатывает и на regex101.com
|
Блин, да. Проверил. В as3 сразу парсятся эмодзи.
Сложно определить точный диапазон. На вскидку пришло малость костыльное, но всё же решение Код AS3:
Можно еще какие-то символы сюда добавить. Проверил, работает в as3 |
Ура!!! Вот такое решение нашел - работает! Находит все суррогатные пары :)
Код AS3:
|
| Часовой пояс GMT +4, время: 09:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.