Có cách nào để kiểm tra xem một chuỗi trong JS có phải là một biểu tượng cảm xúc không?


20

Câu hỏi rất đơn giản: Tôi có một chuỗi str, làm cách nào để kiểm tra nếu strlà một biểu tượng cảm xúc duy nhất và không có gì khác? Ngoài ra, tôi không muốn sử dụng một thư viện khác.

Trận đấu "🍎", "⛹🏿‍♂️", "3️⃣"nhưng không phải "🍓a","𝕒" ,"🍌🍀"

Tôi gặp khó khăn khi tìm giải pháp nhưng đây là một số điều tôi đã thử cho đến nay:


Giải pháp đã thử 1 - Chơi xung quanh độ dài và ... toán tử

Tôi đã học được rằng biểu tượng cảm xúc chiếm nhiều hơn một byte, một số thậm chí chiếm 4 byte hoặc nhiều hơn ... và chúng ta có thể đo lường điều đó thông qua thuộc tính của chuỗi length:

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

Sau đó, tôi phát hiện ra rằng ...toán tử tính đến điều này và phân tách chính xác biểu tượng cảm xúc trong mảng - sau đó tôi có thể thấy thuộc lengthtính của mảng kết quả và phát hiện xem chúng có khác nhau không.

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

Nhưng điều này không kiểm tra các ký tự nhiều byte khác, chẳng hạn như 𝕡độ dài của nó là 2. Ngoài ra, một số biểu tượng cảm xúc vẫn bị tách ra một cách kỳ lạ.


Giải pháp đã thử 2 - Regex, biểu thức chính quy

Tất nhiên regex sẽ là một điều cần xem xét nhưng tôi vẫn chưa tìm được giải pháp khả thi.

Regex của câu trả lời này\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff] hoạt động hoàn toàn tốt để phát hiện nếu một chuỗi có bất kỳ biểu tượng cảm xúc nào, nhưng áp dụng cho tình huống của tôi, nó tạo ra rất nhiều vấn đề. Dưới đây là các bài kiểm tra của tôi:

Phần A - Không có bắt đầu / kết thúc chuỗi regex ( ^$)

  • 2A.1 str.match(regex) rất không nhất quán, nó phá vỡ một số biểu tượng cảm xúc và một số không thể sử dụng khác. Tôi không thấy cách nào để tìm hiểu xem nó thậm chí có chứa các ký tự không phải biểu tượng cảm xúc hay nếu nó chứa nhiều hơn một biểu tượng cảm xúc:
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) trả về đúng bất cứ khi nào một biểu tượng cảm xúc được bao gồm trong chuỗi, đó không phải là hành vi tôi đang tìm kiếm:
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

Phần B - Với bắt đầu / kết thúc chuỗi regex ( ^$)

  • 2B.1 str.match(regex) trả nullvề một số biểu tượng cảm xúc nhất định vì một số lý do. Tôi không biết tại sao nhưng tôi cho rằng nó có một số mối quan hệ như tại sao str.match(regex)sẽ phá vỡ những biểu tượng cảm xúc này trong Phần A:
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) sẽ trở lại falsetrên cùng biểu tượng cảm xúc nơi nó sẽ trở lại nullvào 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

Phần C - Các biểu thức chính quy khác

  • Tôi tìm thấy cái này nhưng nó cho sự không nhất quán tương tự, mặc dù không giống nhau /(?:[\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
  • Ngoài ra, điều này phá vỡ khủng khiếp (thay đổi thử nghiệm thứ hai dựa trên thử nghiệm đầu tiên?)
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

Có cách nào xung quanh tất cả các biểu tượng cảm xúc / unicode / regex này không? Là thư viện / apis là cách duy nhất? Họ làm nó như thế nào?



2
Cá nhân tôi nghĩ rằng duy trì một regex không phải là một ý tưởng hay, trừ khi bạn tạo ra nó từ đặc tả unicode . Có những thư viện đang làm điều đó mặc dù. Xem biểu tượng cảm xúc-regexemoji.json .
Jake Holzinger

Cảm ơn Wiktor Stribiżew, regex đó hoạt động hoàn hảo! Tôi có thể biết làm thế nào hoặc nơi bạn có được điều này từ đâu?
luxluxdev

1
Có một thời gian và một nơi dành cho các thư viện. IMHO đây là một trong số họ. Chi phí duy trì sự phụ thuộc với các phiên bản và kích thước tệp của nó dường như lớn hơn nhiều so với việc nhờ người khác giải quyết vấn đề rất phức tạp này cho bạn.
Chris

1
Re: "làm thế nào để họ làm điều đó" thư viện mà Daniel Vickers liên kết đề cập đến: unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table
Chris

Câu trả lời:


1

Sử dụng thư viện này: https://github.com/ portfoliojs/grapheme-breaker hãy thử điều này:

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

và độ dài sẽ trả về 1.


Thư viện này rất tuyệt, nhưng nó đã không hoạt động trong một năm nay, tuy nhiên nó được lấy cảm hứng từ github.com/
portfoliojs/grapheme

Cảm ơn vì điều đó, tôi cũng đã cập nhật liên kết trong câu trả lời của mình.
Daniel Vickers

1

Biểu tượng cảm xúc được chỉ định trong UAX # 51. Các tài sản \p{Emoji}nên làm việc, nhưng không.

Làm điều đó một cách khó khăn. Phân tích 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

Điều này cung cấp cho chúng tôi một danh sách mới của tất cả các biểu tượng cảm xúc. Sử dụng Regapi :: Assemble :: Được nén, kết quả là

/^(?:[\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

Cảm ơn đã giải thích, thực sự hữu ích! Tuy nhiên tôi dường như không thể làm cho regex kết quả của bạn hoạt động vì nó bị lỗi ở bất cứ đâu tôi thử.
luxluxdev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.