JS'de bir dizenin tek bir emoji olup olmadığını kontrol etmenin bir yolu var mı?


20

Soru basit: Bir dizem var, tek bir emoji strolup olmadığını nasıl kontrol edebilirim strve başka bir şey yok? Ayrıca başka bir kütüphane kullanmamayı tercih ederim.

"🍎", "⛹🏿‍♂️", "3️⃣"ancak "🍓a", "𝕒","🍌🍀"

Bir çözüm bulma konusunda sorun yaşıyorum ama şimdiye kadar denediğim bazı şeyler:


Deneme Çözümü 1 - Uzunlukları ve ...operatörü oynayın

Emojilerin birden fazla bayt, hatta bazılarının 4 bayt veya daha fazlasını işgal ettiğini öğrendim ve bunu dizenin lengthözelliği ile ölçebiliriz :

console.log("🍎".length); // 2
console.log("🛡️".length); // 3
console.log("⛹🏿‍♂️".length); // 6

Sonra ...operatörün bunu dikkate aldığını ve dizideki emojileri doğru bir şekilde ayırdığını öğrendim - sonra ortaya çıkan dizinin lengthözelliğini görebilir ve farklı olup olmadıklarını tespit edebilirim.

str = "⛹🏿‍♂️";
if (str.length !== [...str].length) {
  // is emoji?
} else {
  // is not emoji
}

Ancak bu 𝕡, uzunluğu 2 olan diğer çok baytlık karakterleri kontrol etmez . Ayrıca bazı emojiler hala garip bir şekilde ayrılıyorlardı.


Deneme Çözümü 2 - Normal ifade, düzenli ifadeler

Elbette normal ifade bakılması gereken bir şey olurdu ama henüz uygun bir çözüm bulamadım.

Bu cevap 's regex \u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]bir dize herhangi bir emoji olup olmadığını tespit etmek için mükemmel çalışıyor, ama benim durumumda uygulanan bir çok sorun üretir. İşte benim testlerim:

Bölüm A - Dizge normal ifadesinin başlangıcı / sonu olmadan ( ^ve $)

  • 2A.1 str.match(regex) çok tutarsızdır, bazı emojileri ve bazılarını kullanılamaz hale getirir. Hatta emoji olmayan karakterler içerip içermediğini veya birden fazla emoji içerip içermediğini öğrenmek için bir yol göremiyorum:
let regex = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/;

console.log("5️⃣".match(regex)); // [ '⃣', '⃣', index: 2, input: '5️⃣' ]
console.log("💡".match(regex)); // [ '💡', '💡', index: 0, input: '💡' ]
console.log("🌡️🌡️".match(regex)); // [ '🌡', '🌡', index: 0, input: '🌡️🌡️' ]
console.log("a⛅".match(regex)); // [ '⛅', '⛅', index: 1, input: 'a⛅' ]
  • 2A.2 regex.test(str) , dizeye bir emoji dahil edildiğinde true değerini döndürür; bu, aradığım davranış değildir:
let regex = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/;

console.log(regex.test("5️⃣")); // true - correct
console.log(regex.test("a")); // false - correct
console.log(regex.test("🌡️🌡️")); // true - should be false
console.log(regex.test("hello ⛅!")); // true - should be false

Bölüm B - Regex dizesinin başlangıç ​​/ bitişiyle ( ^ve $)

  • 2B.1 bir sebepten dolayı belirli emojileristr.match(regex) geri döndürür null. Neden olduğuna dair hiçbir fikrim yok ama neden str.match(regex)Bölüm A'daki bu emojileri parçalayacağına dair bir ilişkisi olduğunu varsayıyorum :
let regex = /^(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])$/;

console.log("5️⃣".match(regex)); // null
console.log("💡".match(regex)); // [ '💡', '💡', index: 0, input: '💡' ]
console.log("🌡️".match(regex)); // null
console.log("⛅".match(regex)); // [ '⛅', '⛅', index: 1, input: 'a⛅' ]
console.log("🍌🍀".match(regex)); // null
  • 2B.2 regex.test(str) dönecektir falseo dönecekti aynı emoji'yi üzerinde nullüzerinde str.match(regex):
let regex = /^(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])$/;

console.log(regex.test("5️⃣")); // false - should be true
console.log(regex.test("💡")); // true - correct
console.log(regex.test("🌡️")); // false - should be true
console.log(regex.test("⛅")); // true - correct
console.log(regex.test("🍌🍀")); // false - correct

Bölüm C - Diğer düzenli ifadeler

  • Bulduğum bu bir ama her ne kadar aynı değildir, benzer tutarsızlıkları verir /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c[\ude01\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c[\ude32\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|[\ud83c[\ude50\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g:
let regex = /^(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c[\ude01\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c[\ude32\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|[\ud83c[\ude50\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])$/g

console.log(regex.test("5️⃣")); // true - correct
console.log(regex.test("💡")); // false - should be true
console.log(regex.test("🌡️")); // false - should be true
console.log(regex.test("⛅")); // true - correct
console.log(regex.test("🍌🍀")); // false - correct
  • Ayrıca bu korkunç bir şekilde kırılıyor (ikinci test ilk teste göre mi değişiyor?)
let regex = /^(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c[\ude01\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c[\ude32\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|[\ud83c[\ude50\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])$/g

console.log(regex.test("⛹🏿‍♂️")); // false
console.log(regex.test("⛅")); // true
let regex = /^(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c[\ude01\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c[\ude32\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|[\ud83c[\ude50\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])$/g;

console.log(regex.test("⛹")); // true
console.log(regex.test("⛅")); // false

Tüm bu emoji / unicode / regex karmaşasının etrafında bir yol var mı? Kütüphaneler / apiler tek yol mu? Nasıl yapıyorlar?



2
Bence unicode şartnamesinden üretmedikçe, normal ifadeyi korumak çok iyi bir fikir değildir . Yine de bunu yapan kütüphaneler var. Bkz. Emoji-regex ve emoji.json .
Jake Holzinger

Teşekkürler Wiktor Stribiżew, bu normal ifade mükemmel çalışıyor! Bunu nereden veya nereden aldığını öğrenebilir miyim?
luxluxdev

1
Kütüphaneler için bir zaman ve bir yer var. IMHO bu onlardan biri. Sürümlerine ve dosya boyutuna bağımlı olmanın maliyeti, bir başkasının bu çok karmaşık sorunu sizin için çözmesini sağlayarak ağır basar.
Chris

1
Re: Daniel Vickers'ın bağlı olduğu kütüphane "bunu nasıl yapıyorlar?" Unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table
Chris

Yanıtlar:


1

Bu kütüphaneyi kullanarak: https://github.com/foliojs/grapheme-breaker şunu deneyin:

var str = "⛹🏿‍♂️";
var Grapheme = require('grapheme-splitter');
var splitter = new Grapheme();
console.log(splitter.splitGraphemes(str).length);

ve uzunluk dönmelidir 1.


Bu kütüphane harika, ancak bir yıl boyunca aktif değil, ancak son zamanlarda aktif olan github.com/foliojs/grapheme-breaker'dan ilham aldı :) (yanlış yorumum olduğu için eski
yorumumu sildim

Bunun için teşekkürler, cevabımdaki linki de güncelledim.
Daniel Vickers

1

Emojiler UAX # 51'de belirtilmiştir. Özellik \p{Emoji}çalışması gerekir, ancak çalışmaz.

Zor yoldan yap. Ayrıştırma emoji-*.txt:

perl -C -lne'
    if (my ($c) = $_ =~ /^((?:(?:[[:xdigit:]]+ )|[[:xdigit:]]+\.\.)[[:xdigit:]]+)/) {
        if ($c =~ /\.\./) { # ranges
             my ($f, $t) = map { hex } split /\.\./, $c;
             print for map { chr } $f..$t;
        } else { # sequences
             print join "", map { chr hex } split /\s+/, $c;
        }
    }
' emoji-*.txt

Bu bize tüm emojilerin yeni satır ayrılmış bir listesini verir. Regexp :: Assemble :: Compressed kullanarak, sonuç

/^(?:[\u{23EB}\u{23EC}\u{23F0}\u{2607}-\u{260D}\u{260F}\u{2610}\u{2616}\u{2617}\u{2619}-\u{261C}\u{261E}\u{261F}\u{2624}\u{2625}\u{2627}-\u{2629}\u{262B}-\u{262D}\u{2630}-\u{2637}\u{263B}-\u{263F}\u{2643}-\u{2647}\u{2654}-\u{265E}\u{2661}\u{2662}\u{2669}-\u{267A}\u{267C}\u{267D}\u{2680}-\u{2685}\u{2690}\u{2691}\u{269D}-\u{269F}\u{26A2}-\u{26A9}\u{26AC}-\u{26AF}\u{26B2}-\u{26BC}\u{26BF}-\u{26C3}\u{26C6}\u{26C7}\u{26C9}-\u{26CE}\u{26D5}-\u{26E8}\u{26EB}-\u{26EF}\u{26FB}\u{26FC}\u{26FE}-\u{2701}\u{2703}\u{2704}\u{2710}\u{2711}\u{2754}\u{2755}\u{2765}-\u{2767}\u{2795}-\u{2797}\u{1F000}-\u{1F003}\u{1F005}-\u{1F0CE}\u{1F0D0}-\u{1F0FF}\u{1F10D}-\u{1F10F}\u{1F16C}-\u{1F16F}\u{1F191}-\u{1F19A}\u{1F1AD}-\u{1F1E5}\u{1F201}\u{1F203}-\u{1F20F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F23C}-\u{1F23F}\u{1F249}-\u{1F30C}\u{1F310}-\u{1F314}\u{1F316}-\u{1F31B}\u{1F31D}-\u{1F320}\u{1F322}\u{1F323}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F377}\u{1F379}-\u{1F37C}\u{1F37E}-\u{1F384}\u{1F386}-\u{1F392}\u{1F394}\u{1F395}\u{1F39C}\u{1F39D}\u{1F3A0}-\u{1F3A6}\u{1F3A8}-\u{1F3AB}\u{1F3AF}-\u{1F3C1}\u{1F3C5}\u{1F3C8}\u{1F3C9}\u{1F3CF}-\u{1F3D3}\u{1F3E1}-\u{1F3EC}\u{1F3EE}-\u{1F3F2}\u{1F3F8}-\u{1F407}\u{1F409}-\u{1F414}\u{1F416}-\u{1F41E}\u{1F420}-\u{1F425}\u{1F427}-\u{1F43E}\u{1F440}\u{1F444}\u{1F445}\u{1F451}\u{1F452}\u{1F454}-\u{1F465}\u{1F479}-\u{1F47B}\u{1F47E}-\u{1F480}\u{1F484}\u{1F488}-\u{1F4A2}\u{1F4A4}-\u{1F4A9}\u{1F4AB}-\u{1F4AF}\u{1F4B1}\u{1F4B2}\u{1F4B4}-\u{1F4BA}\u{1F4BC}-\u{1F4BE}\u{1F4C0}-\u{1F4CA}\u{1F4CC}-\u{1F4D9}\u{1F4DB}-\u{1F4DE}\u{1F4E0}-\u{1F4E3}\u{1F4E7}-\u{1F4E9}\u{1F4EE}-\u{1F4F6}\u{1F4F8}\u{1F4FC}\u{1F4FF}-\u{1F507}\u{1F509}-\u{1F50C}\u{1F50E}-\u{1F511}\u{1F514}-\u{1F53D}\u{1F546}-\u{1F548}\u{1F54B}-\u{1F54E}\u{1F568}-\u{1F56E}\u{1F571}\u{1F572}\u{1F57B}-\u{1F586}\u{1F588}\u{1F589}\u{1F58E}\u{1F58F}\u{1F591}-\u{1F594}\u{1F597}-\u{1F5A3}\u{1F5A6}\u{1F5A7}\u{1F5A9}-\u{1F5B0}\u{1F5B3}-\u{1F5BB}\u{1F5BD}-\u{1F5C1}\u{1F5C5}-\u{1F5D0}\u{1F5D4}-\u{1F5DB}\u{1F5DF}\u{1F5E0}\u{1F5E4}-\u{1F5E7}\u{1F5E9}-\u{1F5EE}\u{1F5F0}-\u{1F5F2}\u{1F5F4}-\u{1F5F9}\u{1F5FB}-\u{1F60F}\u{1F611}-\u{1F644}\u{1F648}-\u{1F64A}\u{1F680}-\u{1F686}\u{1F688}-\u{1F68C}\u{1F68E}-\u{1F690}\u{1F692}\u{1F693}\u{1F695}-\u{1F697}\u{1F699}-\u{1F6A2}\u{1F6A4}-\u{1F6AC}\u{1F6AE}-\u{1F6B1}\u{1F6B3}\u{1F6B7}\u{1F6B8}\u{1F6BB}\u{1F6BD}-\u{1F6BF}\u{1F6C1}-\u{1F6CA}\u{1F6D0}-\u{1F6D4}\u{1F6D6}-\u{1F6DF}\u{1F6E6}-\u{1F6E8}\u{1F6EB}-\u{1F6EF}\u{1F6F1}\u{1F6F2}\u{1F6F4}-\u{1F6F8}\u{1F6FB}-\u{1F6FF}\u{1F774}-\u{1F77F}\u{1F7D5}-\u{1F7FF}\u{1F80C}-\u{1F80F}\u{1F848}-\u{1F84F}\u{1F85A}-\u{1F85F}\u{1F888}-\u{1F88F}\u{1F8AE}-\u{1F8FF}\u{1F90D}\u{1F90E}\u{1F910}-\u{1F917}\u{1F91D}\u{1F920}-\u{1F925}\u{1F927}-\u{1F92F}\u{1F93A}\u{1F940}-\u{1F945}\u{1F947}-\u{1F94B}\u{1F94D}-\u{1F970}\u{1F973}-\u{1F979}\u{1F97C}-\u{1F9B4}\u{1F9B7}\u{1F9BA}\u{1F9BC}-\u{1F9BF}\u{1F9C1}-\u{1F9CC}\u{1F9D0}\u{1F9E0}-\u{1FFFD}\u{E0020}-\u{E007F}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]?|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]?|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]?|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]?|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]?|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]?|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]?|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]?|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]?|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]?|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]?|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]?|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]?|\u{26F9}[\u{200D}\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F3C4}[\u{200D}\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F3CA}[\u{200D}\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F3CB}[\u{200D}\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F3CC}[\u{200D}\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F575}[\u{200D}\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{270C}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{270D}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]?|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]?|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]?|\u{1F3C2}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F442}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F446}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F447}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F448}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F449}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F44D}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F44E}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{1F574}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]?|\u{261D}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]?|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]?|\u{1F3C3}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F468}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F469}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F46E}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F471}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F473}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F477}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F481}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F482}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F486}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F487}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F590}[\u{FE0E}\u{FE0F}\u{1F3FB}-\u{1F3FF}]|\u{1F645}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F646}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F647}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F64B}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F64D}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F64E}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F6A3}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F6B4}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F6B5}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F6B6}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F926}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F937}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F938}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F939}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F93D}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F93E}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9B8}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9B9}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9CD}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9CE}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9CF}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9D1}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9D6}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9D7}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9D8}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9D9}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9DA}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9DB}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9DC}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{1F9DD}[\u{200D}\u{1F3FB}-\u{1F3FF}]?|\u{270A}[\u{1F3FB}-\u{1F3FF}]?|\u{270B}[\u{1F3FB}-\u{1F3FF}]?|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]?|\u{1F385}[\u{1F3FB}-\u{1F3FF}]?|\u{1F3C7}[\u{1F3FB}-\u{1F3FF}]?|\u{1F443}[\u{1F3FB}-\u{1F3FF}]?|\u{1F44A}[\u{1F3FB}-\u{1F3FF}]?|\u{1F44B}[\u{1F3FB}-\u{1F3FF}]?|\u{1F44C}[\u{1F3FB}-\u{1F3FF}]?|\u{1F44F}[\u{1F3FB}-\u{1F3FF}]?|\u{1F450}[\u{1F3FB}-\u{1F3FF}]?|\u{1F466}[\u{1F3FB}-\u{1F3FF}]?|\u{1F467}[\u{1F3FB}-\u{1F3FF}]?|\u{1F46B}[\u{1F3FB}-\u{1F3FF}]?|\u{1F46C}[\u{1F3FB}-\u{1F3FF}]?|\u{1F46D}[\u{1F3FB}-\u{1F3FF}]?|\u{1F470}[\u{1F3FB}-\u{1F3FF}]?|\u{1F472}[\u{1F3FB}-\u{1F3FF}]?|\u{1F474}[\u{1F3FB}-\u{1F3FF}]?|\u{1F475}[\u{1F3FB}-\u{1F3FF}]?|\u{1F476}[\u{1F3FB}-\u{1F3FF}]?|\u{1F478}[\u{1F3FB}-\u{1F3FF}]?|\u{1F47C}[\u{1F3FB}-\u{1F3FF}]?|\u{1F483}[\u{1F3FB}-\u{1F3FF}]?|\u{1F485}[\u{1F3FB}-\u{1F3FF}]?|\u{1F4AA}[\u{1F3FB}-\u{1F3FF}]?|\u{1F595}[\u{1F3FB}-\u{1F3FF}]?|\u{1F596}[\u{1F3FB}-\u{1F3FF}]?|\u{1F64C}[\u{1F3FB}-\u{1F3FF}]?|\u{1F64F}[\u{1F3FB}-\u{1F3FF}]?|\u{1F6C0}[\u{1F3FB}-\u{1F3FF}]?|\u{1F6CC}[\u{1F3FB}-\u{1F3FF}]?|\u{1F90F}[\u{1F3FB}-\u{1F3FF}]?|\u{1F918}[\u{1F3FB}-\u{1F3FF}]?|\u{1F919}[\u{1F3FB}-\u{1F3FF}]?|\u{1F91A}[\u{1F3FB}-\u{1F3FF}]?|\u{1F91B}[\u{1F3FB}-\u{1F3FF}]?|\u{1F91C}[\u{1F3FB}-\u{1F3FF}]?|\u{1F91E}[\u{1F3FB}-\u{1F3FF}]?|\u{1F931}[\u{1F3FB}-\u{1F3FF}]?|\u{1F932}[\u{1F3FB}-\u{1F3FF}]?|\u{1F933}[\u{1F3FB}-\u{1F3FF}]?|\u{1F934}[\u{1F3FB}-\u{1F3FF}]?|\u{1F935}[\u{1F3FB}-\u{1F3FF}]?|\u{1F936}[\u{1F3FB}-\u{1F3FF}]?|\u{1F9B5}[\u{1F3FB}-\u{1F3FF}]?|\u{1F9B6}[\u{1F3FB}-\u{1F3FF}]?|\u{1F9BB}[\u{1F3FB}-\u{1F3FF}]?|\u{1F9D2}[\u{1F3FB}-\u{1F3FF}]?|\u{1F9D3}[\u{1F3FB}-\u{1F3FF}]?|\u{1F9D4}[\u{1F3FB}-\u{1F3FF}]?|\u{1F9D5}[\u{1F3FB}-\u{1F3FF}]?|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]?|\u{1F57A}[\u{1F3FB}-\u{1F3FF}]|\u{1F91F}[\u{1F3FB}-\u{1F3FF}]|\u{1F930}[\u{1F3FB}-\u{1F3FF}]|0[\u{20E3}\u{FE0E}\u{FE0F}]?|1[\u{20E3}\u{FE0E}\u{FE0F}]?|2[\u{20E3}\u{FE0E}\u{FE0F}]?|3[\u{20E3}\u{FE0E}\u{FE0F}]?|4[\u{20E3}\u{FE0E}\u{FE0F}]?|5[\u{20E3}\u{FE0E}\u{FE0F}]?|6[\u{20E3}\u{FE0E}\u{FE0F}]?|7[\u{20E3}\u{FE0E}\u{FE0F}]?|8[\u{20E3}\u{FE0E}\u{FE0F}]?|9[\u{20E3}\u{FE0E}\u{FE0F}]?|\\*[\u{20E3}\u{FE0E}\u{FE0F}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]?|\u{1F3F3}[\u{200D}\u{FE0E}\u{FE0F}]?|\u{1F415}[\u{200D}\u{FE0E}\u{FE0F}]?|\u{1F441}[\u{200D}\u{FE0E}\u{FE0F}]?|#[\u{20E3}\u{FE0E}\u{FE0F}]|\u{2194}[\u{FE0E}\u{FE0F}]?|\u{2195}[\u{FE0E}\u{FE0F}]?|\u{2196}[\u{FE0E}\u{FE0F}]?|\u{2197}[\u{FE0E}\u{FE0F}]?|\u{2198}[\u{FE0E}\u{FE0F}]?|\u{2199}[\u{FE0E}\u{FE0F}]?|\u{21A9}[\u{FE0E}\u{FE0F}]?|\u{21AA}[\u{FE0E}\u{FE0F}]?|\u{231A}[\u{FE0E}\u{FE0F}]?|\u{231B}[\u{FE0E}\u{FE0F}]?|\u{23E9}[\u{FE0E}\u{FE0F}]?|\u{23EA}[\u{FE0E}\u{FE0F}]?|\u{23ED}[\u{FE0E}\u{FE0F}]?|\u{23EE}[\u{FE0E}\u{FE0F}]?|\u{23EF}[\u{FE0E}\u{FE0F}]?|\u{23F1}[\u{FE0E}\u{FE0F}]?|\u{23F2}[\u{FE0E}\u{FE0F}]?|\u{23F3}[\u{FE0E}\u{FE0F}]?|\u{23F8}[\u{FE0E}\u{FE0F}]?|\u{23F9}[\u{FE0E}\u{FE0F}]?|\u{23FA}[\u{FE0E}\u{FE0F}]?|\u{25AA}[\u{FE0E}\u{FE0F}]?|\u{25AB}[\u{FE0E}\u{FE0F}]?|\u{25FB}[\u{FE0E}\u{FE0F}]?|\u{25FC}[\u{FE0E}\u{FE0F}]?|\u{25FD}[\u{FE0E}\u{FE0F}]?|\u{25FE}[\u{FE0E}\u{FE0F}]?|\u{2600}[\u{FE0E}\u{FE0F}]?|\u{2601}[\u{FE0E}\u{FE0F}]?|\u{2602}[\u{FE0E}\u{FE0F}]?|\u{2603}[\u{FE0E}\u{FE0F}]?|\u{2604}[\u{FE0E}\u{FE0F}]?|\u{2614}[\u{FE0E}\u{FE0F}]?|\u{2615}[\u{FE0E}\u{FE0F}]?|\u{2622}[\u{FE0E}\u{FE0F}]?|\u{2623}[\u{FE0E}\u{FE0F}]?|\u{262E}[\u{FE0E}\u{FE0F}]?|\u{262F}[\u{FE0E}\u{FE0F}]?|\u{2638}[\u{FE0E}\u{FE0F}]?|\u{2639}[\u{FE0E}\u{FE0F}]?|\u{263A}[\u{FE0E}\u{FE0F}]?|\u{2648}[\u{FE0E}\u{FE0F}]?|\u{2649}[\u{FE0E}\u{FE0F}]?|\u{264A}[\u{FE0E}\u{FE0F}]?|\u{264B}[\u{FE0E}\u{FE0F}]?|\u{264C}[\u{FE0E}\u{FE0F}]?|\u{264D}[\u{FE0E}\u{FE0F}]?|\u{264E}[\u{FE0E}\u{FE0F}]?|\u{264F}[\u{FE0E}\u{FE0F}]?|\u{2650}[\u{FE0E}\u{FE0F}]?|\u{2651}[\u{FE0E}\u{FE0F}]?|\u{2652}[\u{FE0E}\u{FE0F}]?|\u{2653}[\u{FE0E}\u{FE0F}]?|\u{2665}[\u{FE0E}\u{FE0F}]?|\u{2666}[\u{FE0E}\u{FE0F}]?|\u{2692}[\u{FE0E}\u{FE0F}]?|\u{2693}[\u{FE0E}\u{FE0F}]?|\u{2694}[\u{FE0E}\u{FE0F}]?|\u{2696}[\u{FE0E}\u{FE0F}]?|\u{2697}[\u{FE0E}\u{FE0F}]?|\u{269B}[\u{FE0E}\u{FE0F}]?|\u{269C}[\u{FE0E}\u{FE0F}]?|\u{26A0}[\u{FE0E}\u{FE0F}]?|\u{26A1}[\u{FE0E}\u{FE0F}]?|\u{26AA}[\u{FE0E}\u{FE0F}]?|\u{26AB}[\u{FE0E}\u{FE0F}]?|\u{26B0}[\u{FE0E}\u{FE0F}]?|\u{26B1}[\u{FE0E}\u{FE0F}]?|\u{26BD}[\u{FE0E}\u{FE0F}]?|\u{26BE}[\u{FE0E}\u{FE0F}]?|\u{26C4}[\u{FE0E}\u{FE0F}]?|\u{26C5}[\u{FE0E}\u{FE0F}]?|\u{26CF}[\u{FE0E}\u{FE0F}]?|\u{26D3}[\u{FE0E}\u{FE0F}]?|\u{26D4}[\u{FE0E}\u{FE0F}]?|\u{26E9}[\u{FE0E}\u{FE0F}]?|\u{26EA}[\u{FE0E}\u{FE0F}]?|\u{26F0}[\u{FE0E}\u{FE0F}]?|\u{26F1}[\u{FE0E}\u{FE0F}]?|\u{26F2}[\u{FE0E}\u{FE0F}]?|\u{26F3}[\u{FE0E}\u{FE0F}]?|\u{26F4}[\u{FE0E}\u{FE0F}]?|\u{26F5}[\u{FE0E}\u{FE0F}]?|\u{26F7}[\u{FE0E}\u{FE0F}]?|\u{26F8}[\u{FE0E}\u{FE0F}]?|\u{26FA}[\u{FE0E}\u{FE0F}]?|\u{2708}[\u{FE0E}\u{FE0F}]?|\u{2709}[\u{FE0E}\u{FE0F}]?|\u{2733}[\u{FE0E}\u{FE0F}]?|\u{2734}[\u{FE0E}\u{FE0F}]?|\u{2753}[\u{FE0E}\u{FE0F}]?|\u{2763}[\u{FE0E}\u{FE0F}]?|\u{2764}[\u{FE0E}\u{FE0F}]?|\u{2934}[\u{FE0E}\u{FE0F}]?|\u{2935}[\u{FE0E}\u{FE0F}]?|\u{2B05}[\u{FE0E}\u{FE0F}]?|\u{2B06}[\u{FE0E}\u{FE0F}]?|\u{2B07}[\u{FE0E}\u{FE0F}]?|\u{2B1B}[\u{FE0E}\u{FE0F}]?|\u{2B1C}[\u{FE0E}\u{FE0F}]?|\u{1F170}[\u{FE0E}\u{FE0F}]?|\u{1F171}[\u{FE0E}\u{FE0F}]?|\u{1F17E}[\u{FE0E}\u{FE0F}]?|\u{1F17F}[\u{FE0E}\u{FE0F}]?|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]?|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]?|\u{1F202}[\u{FE0E}\u{FE0F}]?|\u{1F237}[\u{FE0E}\u{FE0F}]?|\u{1F30D}[\u{FE0E}\u{FE0F}]?|\u{1F30E}[\u{FE0E}\u{FE0F}]?|\u{1F30F}[\u{FE0E}\u{FE0F}]?|\u{1F315}[\u{FE0E}\u{FE0F}]?|\u{1F31C}[\u{FE0E}\u{FE0F}]?|\u{1F321}[\u{FE0E}\u{FE0F}]?|\u{1F324}[\u{FE0E}\u{FE0F}]?|\u{1F325}[\u{FE0E}\u{FE0F}]?|\u{1F326}[\u{FE0E}\u{FE0F}]?|\u{1F327}[\u{FE0E}\u{FE0F}]?|\u{1F328}[\u{FE0E}\u{FE0F}]?|\u{1F329}[\u{FE0E}\u{FE0F}]?|\u{1F32A}[\u{FE0E}\u{FE0F}]?|\u{1F32B}[\u{FE0E}\u{FE0F}]?|\u{1F32C}[\u{FE0E}\u{FE0F}]?|\u{1F336}[\u{FE0E}\u{FE0F}]?|\u{1F378}[\u{FE0E}\u{FE0F}]?|\u{1F37D}[\u{FE0E}\u{FE0F}]?|\u{1F393}[\u{FE0E}\u{FE0F}]?|\u{1F396}[\u{FE0E}\u{FE0F}]?|\u{1F397}[\u{FE0E}\u{FE0F}]?|\u{1F399}[\u{FE0E}\u{FE0F}]?|\u{1F39A}[\u{FE0E}\u{FE0F}]?|\u{1F39B}[\u{FE0E}\u{FE0F}]?|\u{1F39E}[\u{FE0E}\u{FE0F}]?|\u{1F39F}[\u{FE0E}\u{FE0F}]?|\u{1F3A7}[\u{FE0E}\u{FE0F}]?|\u{1F3AC}[\u{FE0E}\u{FE0F}]?|\u{1F3AD}[\u{FE0E}\u{FE0F}]?|\u{1F3AE}[\u{FE0E}\u{FE0F}]?|\u{1F3C6}[\u{FE0E}\u{FE0F}]?|\u{1F3CD}[\u{FE0E}\u{FE0F}]?|\u{1F3CE}[\u{FE0E}\u{FE0F}]?|\u{1F3D4}[\u{FE0E}\u{FE0F}]?|\u{1F3D5}[\u{FE0E}\u{FE0F}]?|\u{1F3D6}[\u{FE0E}\u{FE0F}]?|\u{1F3D7}[\u{FE0E}\u{FE0F}]?|\u{1F3D8}[\u{FE0E}\u{FE0F}]?|\u{1F3D9}[\u{FE0E}\u{FE0F}]?|\u{1F3DA}[\u{FE0E}\u{FE0F}]?|\u{1F3DB}[\u{FE0E}\u{FE0F}]?|\u{1F3DC}[\u{FE0E}\u{FE0F}]?|\u{1F3DD}[\u{FE0E}\u{FE0F}]?|\u{1F3DE}[\u{FE0E}\u{FE0F}]?|\u{1F3DF}[\u{FE0E}\u{FE0F}]?|\u{1F3E0}[\u{FE0E}\u{FE0F}]?|\u{1F3ED}[\u{FE0E}\u{FE0F}]?|\u{1F3F4}[\u{200D}\u{E0067}]?|\u{1F3F5}[\u{FE0E}\u{FE0F}]?|\u{1F3F7}[\u{FE0E}\u{FE0F}]?|\u{1F408}[\u{FE0E}\u{FE0F}]?|\u{1F41F}[\u{FE0E}\u{FE0F}]?|\u{1F426}[\u{FE0E}\u{FE0F}]?|\u{1F43F}[\u{FE0E}\u{FE0F}]?|\u{1F453}[\u{FE0E}\u{FE0F}]?|\u{1F46A}[\u{FE0E}\u{FE0F}]?|\u{1F47D}[\u{FE0E}\u{FE0F}]?|\u{1F4A3}[\u{FE0E}\u{FE0F}]?|\u{1F4B0}[\u{FE0E}\u{FE0F}]?|\u{1F4B3}[\u{FE0E}\u{FE0F}]?|\u{1F4BB}[\u{FE0E}\u{FE0F}]?|\u{1F4BF}[\u{FE0E}\u{FE0F}]?|\u{1F4CB}[\u{FE0E}\u{FE0F}]?|\u{1F4DA}[\u{FE0E}\u{FE0F}]?|\u{1F4DF}[\u{FE0E}\u{FE0F}]?|\u{1F4E4}[\u{FE0E}\u{FE0F}]?|\u{1F4E5}[\u{FE0E}\u{FE0F}]?|\u{1F4E6}[\u{FE0E}\u{FE0F}]?|\u{1F4EA}[\u{FE0E}\u{FE0F}]?|\u{1F4EB}[\u{FE0E}\u{FE0F}]?|\u{1F4EC}[\u{FE0E}\u{FE0F}]?|\u{1F4ED}[\u{FE0E}\u{FE0F}]?|\u{1F4F7}[\u{FE0E}\u{FE0F}]?|\u{1F4F9}[\u{FE0E}\u{FE0F}]?|\u{1F4FA}[\u{FE0E}\u{FE0F}]?|\u{1F4FB}[\u{FE0E}\u{FE0F}]?|\u{1F4FD}[\u{FE0E}\u{FE0F}]?|\u{1F508}[\u{FE0E}\u{FE0F}]?|\u{1F50D}[\u{FE0E}\u{FE0F}]?|\u{1F512}[\u{FE0E}\u{FE0F}]?|\u{1F513}[\u{FE0E}\u{FE0F}]?|\u{1F549}[\u{FE0E}\u{FE0F}]?|\u{1F54A}[\u{FE0E}\u{FE0F}]?|\u{1F550}[\u{FE0E}\u{FE0F}]?|\u{1F551}[\u{FE0E}\u{FE0F}]?|\u{1F552}[\u{FE0E}\u{FE0F}]?|\u{1F553}[\u{FE0E}\u{FE0F}]?|\u{1F554}[\u{FE0E}\u{FE0F}]?|\u{1F555}[\u{FE0E}\u{FE0F}]?|\u{1F556}[\u{FE0E}\u{FE0F}]?|\u{1F557}[\u{FE0E}\u{FE0F}]?|\u{1F558}[\u{FE0E}\u{FE0F}]?|\u{1F559}[\u{FE0E}\u{FE0F}]?|\u{1F55A}[\u{FE0E}\u{FE0F}]?|\u{1F55B}[\u{FE0E}\u{FE0F}]?|\u{1F55C}[\u{FE0E}\u{FE0F}]?|\u{1F55D}[\u{FE0E}\u{FE0F}]?|\u{1F55E}[\u{FE0E}\u{FE0F}]?|\u{1F55F}[\u{FE0E}\u{FE0F}]?|\u{1F560}[\u{FE0E}\u{FE0F}]?|\u{1F561}[\u{FE0E}\u{FE0F}]?|\u{1F562}[\u{FE0E}\u{FE0F}]?|\u{1F563}[\u{FE0E}\u{FE0F}]?|\u{1F564}[\u{FE0E}\u{FE0F}]?|\u{1F565}[\u{FE0E}\u{FE0F}]?|\u{1F566}[\u{FE0E}\u{FE0F}]?|\u{1F567}[\u{FE0E}\u{FE0F}]?|\u{1F56F}[\u{FE0E}\u{FE0F}]?|\u{1F570}[\u{FE0E}\u{FE0F}]?|\u{1F573}[\u{FE0E}\u{FE0F}]?|\u{1F576}[\u{FE0E}\u{FE0F}]?|\u{1F577}[\u{FE0E}\u{FE0F}]?|\u{1F578}[\u{FE0E}\u{FE0F}]?|\u{1F579}[\u{FE0E}\u{FE0F}]?|\u{1F58A}[\u{FE0E}\u{FE0F}]?|\u{1F58B}[\u{FE0E}\u{FE0F}]?|\u{1F58C}[\u{FE0E}\u{FE0F}]?|\u{1F58D}[\u{FE0E}\u{FE0F}]?|\u{1F5B1}[\u{FE0E}\u{FE0F}]?|\u{1F5B2}[\u{FE0E}\u{FE0F}]?|\u{1F5C2}[\u{FE0E}\u{FE0F}]?|\u{1F5C3}[\u{FE0E}\u{FE0F}]?|\u{1F5C4}[\u{FE0E}\u{FE0F}]?|\u{1F5D1}[\u{FE0E}\u{FE0F}]?|\u{1F5D2}[\u{FE0E}\u{FE0F}]?|\u{1F5D3}[\u{FE0E}\u{FE0F}]?|\u{1F5DC}[\u{FE0E}\u{FE0F}]?|\u{1F5DD}[\u{FE0E}\u{FE0F}]?|\u{1F5DE}[\u{FE0E}\u{FE0F}]?|\u{1F5FA}[\u{FE0E}\u{FE0F}]?|\u{1F610}[\u{FE0E}\u{FE0F}]?|\u{1F687}[\u{FE0E}\u{FE0F}]?|\u{1F68D}[\u{FE0E}\u{FE0F}]?|\u{1F691}[\u{FE0E}\u{FE0F}]?|\u{1F694}[\u{FE0E}\u{FE0F}]?|\u{1F698}[\u{FE0E}\u{FE0F}]?|\u{1F6AD}[\u{FE0E}\u{FE0F}]?|\u{1F6B2}[\u{FE0E}\u{FE0F}]?|\u{1F6B9}[\u{FE0E}\u{FE0F}]?|\u{1F6BA}[\u{FE0E}\u{FE0F}]?|\u{1F6BC}[\u{FE0E}\u{FE0F}]?|\u{1F6CB}[\u{FE0E}\u{FE0F}]?|\u{1F6CD}[\u{FE0E}\u{FE0F}]?|\u{1F6CE}[\u{FE0E}\u{FE0F}]?|\u{1F6CF}[\u{FE0E}\u{FE0F}]?|\u{1F6E0}[\u{FE0E}\u{FE0F}]?|\u{1F6E1}[\u{FE0E}\u{FE0F}]?|\u{1F6E2}[\u{FE0E}\u{FE0F}]?|\u{1F6E3}[\u{FE0E}\u{FE0F}]?|\u{1F6E4}[\u{FE0E}\u{FE0F}]?|\u{1F6E5}[\u{FE0E}\u{FE0F}]?|\uA9[\u{FE0E}\u{FE0F}]|\uAE[\u{FE0E}\u{FE0F}]|\u{203C}[\u{FE0E}\u{FE0F}]|\u{2049}[\u{FE0E}\u{FE0F}]|\u{2122}[\u{FE0E}\u{FE0F}]|\u{2139}[\u{FE0E}\u{FE0F}]|\u{2328}[\u{FE0E}\u{FE0F}]|\u{23CF}[\u{FE0E}\u{FE0F}]|\u{24C2}[\u{FE0E}\u{FE0F}]|\u{25B6}[\u{FE0E}\u{FE0F}]|\u{25C0}[\u{FE0E}\u{FE0F}]|\u{260E}[\u{FE0E}\u{FE0F}]|\u{2611}[\u{FE0E}\u{FE0F}]|\u{2618}[\u{FE0E}\u{FE0F}]|\u{2620}[\u{FE0E}\u{FE0F}]|\u{2626}[\u{FE0E}\u{FE0F}]|\u{262A}[\u{FE0E}\u{FE0F}]|\u{2640}[\u{FE0E}\u{FE0F}]|\u{2642}[\u{FE0E}\u{FE0F}]|\u{265F}[\u{FE0E}\u{FE0F}]|\u{2660}[\u{FE0E}\u{FE0F}]|\u{2663}[\u{FE0E}\u{FE0F}]|\u{2668}[\u{FE0E}\u{FE0F}]|\u{267B}[\u{FE0E}\u{FE0F}]|\u{267E}[\u{FE0E}\u{FE0F}]|\u{267F}[\u{FE0E}\u{FE0F}]|\u{2695}[\u{FE0E}\u{FE0F}]|\u{2699}[\u{FE0E}\u{FE0F}]|\u{26C8}[\u{FE0E}\u{FE0F}]|\u{26D1}[\u{FE0E}\u{FE0F}]|\u{26FD}[\u{FE0E}\u{FE0F}]|\u{2702}[\u{FE0E}\u{FE0F}]|\u{270F}[\u{FE0E}\u{FE0F}]|\u{2712}[\u{FE0E}\u{FE0F}]|\u{2714}[\u{FE0E}\u{FE0F}]|\u{2716}[\u{FE0E}\u{FE0F}]|\u{271D}[\u{FE0E}\u{FE0F}]|\u{2721}[\u{FE0E}\u{FE0F}]|\u{2744}[\u{FE0E}\u{FE0F}]|\u{2747}[\u{FE0E}\u{FE0F}]|\u{2757}[\u{FE0E}\u{FE0F}]|\u{27A1}[\u{FE0E}\u{FE0F}]|\u{2B50}[\u{FE0E}\u{FE0F}]|\u{2B55}[\u{FE0E}\u{FE0F}]|\u{3030}[\u{FE0E}\u{FE0F}]|\u{303D}[\u{FE0E}\u{FE0F}]|\u{3297}[\u{FE0E}\u{FE0F}]|\u{3299}[\u{FE0E}\u{FE0F}]|\u{1F004}[\u{FE0E}\u{FE0F}]|\u{1F21A}[\u{FE0E}\u{FE0F}]|\u{1F22F}[\u{FE0E}\u{FE0F}]|\u{1F587}[\u{FE0E}\u{FE0F}]|\u{1F5A5}[\u{FE0E}\u{FE0F}]|\u{1F5A8}[\u{FE0E}\u{FE0F}]|\u{1F5BC}[\u{FE0E}\u{FE0F}]|\u{1F5E1}[\u{FE0E}\u{FE0F}]|\u{1F5E3}[\u{FE0E}\u{FE0F}]|\u{1F5E8}[\u{FE0E}\u{FE0F}]|\u{1F5EF}[\u{FE0E}\u{FE0F}]|\u{1F5F3}[\u{FE0E}\u{FE0F}]|\u{1F6E9}[\u{FE0E}\u{FE0F}]|\u{1F6F0}[\u{FE0E}\u{FE0F}]|\u{1F6F3}[\u{FE0E}\u{FE0F}]|\u{1F1F4}\u{1F1F2}?|\u{1F1F6}\u{1F1E6}?|\u{1F1FD}\u{1F1F0}?|\u{1F46F}\u{200D}?|\u{1F93C}\u{200D}?|\u{1F9DE}\u{200D}?|\u{1F9DF}\u{200D}?)$/u

Açıklama için teşekkürler, gerçekten yararlı! Ancak ben denemek her yerde hataları olarak ortaya çıkan regex çalışması yapmak gibi olamaz.
luxluxdev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.