La risposta corretta è individuare il punto di codice assegnato nel blocco Miscellaneous_Symbols_And_Pictographs
. In Perl, utilizza
/\p{Assigned}/ && \p{block=Miscellaneous_Symbols_And_Pictographs}/
o semplicemente
/\P{Cn}/ && /\p{Miscellaneous_Symbols_And_Pictographs}/
che si dovrebbe combinare quelle in un modello con
/(?=\p{Assigned})\p{Miscellaneous_Symbols_And_Pictographs}/
Non ricordo se la libreria PCRE che PHP usi consente di accedere alle proprietà dei caratteri Unicode richieste. Il mio ricordo è che è piuttosto debole in quella particolare area. Penso che tu abbia solo le proprietà degli script Unicode e le categorie generali. Sospiro.
A volte devi solo usare la cosa reale.
Per mancanza di supporto Unicode decente, potrebbe essere necessario elencare il blocco da soli:
/(?=\P{Cn})[\x{1F300}-\x{1F5FF}]/
Sembra un incubo di manutenzione per me, pieno di numeri magici.
Ciao, grazie per quell'idea, ma non funziona per tutte le emoji:) C'è un modo per aggiungere supporto per questo: ❤? E probabilmente alcuni altri? Funziona perfettamente per le emoji iOS ora. Grazie. – Kukosk
Bene, questa è la domanda su ciò che contate come emoji. ❤ esisteva come simbolo generale molto prima che qualcuno concepisse le emoji. Se vuoi bloccare solo i simboli che sono stati riutilizzati per le emoji, guarda il link Emoji per PHP sopra e scegli tutti i punti di codice U + 2xxx usati. In alternativa, considera il blocco di un intervallo più ampio di simboli se non ne hai bisogno, ad esempio 'unichr (0x2190) .'- '. Unichr (0x27FF)'. – bobince
grazie bobince :) – Kukosk