Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मैं एक स्ट्रिंग से इमोजी वर्ण कैसे निकालूं?

मान लें कि आप सभी गैर-बीएमपी वर्णों को हटाना चाहते हैं, यानी यू+10000 और उच्चतर के यूनिकोड कोड बिंदु के साथ कुछ भी, आप किसी भी यूटीएफ -16 को निकालने के लिए रेगेक्स का उपयोग कर सकते हैं सरोगेट स्ट्रिंग से कोड इकाइयां। उदाहरण के लिए:

using System;
using System.Text.RegularExpressions;

class Test
{
    static void Main(string[] args)
    {
        string text = "x\U0001F310y";
        Console.WriteLine(text.Length); // 4
        string result = Regex.Replace(text, @"\p{Cs}", "");
        Console.WriteLine(result); // 2
    }
}

यहाँ "Cs" "सरोगेट" के लिए यूनिकोड श्रेणी है।

ऐसा प्रतीत होता है कि Regex यूनिकोड कोड बिंदुओं के बजाय UTF-16 कोड इकाइयों के आधार पर काम करता है, अन्यथा आपको एक अलग दृष्टिकोण की आवश्यकता होगी।

ध्यान दें कि इमोजी के अलावा अन्य गैर-बीएमपी वर्ण हैं, लेकिन मुझे संदेह है कि आप पाएंगे कि जब आप उन्हें संग्रहीत करने का प्रयास करेंगे तो उन्हें भी यही समस्या होगी।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बड़े पेड़ों के साथ mysql पदानुक्रम भंडारण

  2. मौजूद डेटा नहीं के लिए खाली पंक्तियाँ लौटाएँ

  3. पायथन MySQLDB क्वेरी टाइमआउट

  4. MySQL कार्यक्षेत्र से सीमा खंड निकालें

  5. MySQL कार्यक्षेत्र mysql.proc लोड नहीं कर सकता