2017-08-30 3 views
6

मैं एक स्ट्रिंग में अरबी या फ़ारसी वर्ण का पता लगाना चाहता हूं।सी # द्वारा स्ट्रिंग में अरबी या फारसी चरित्र का पता कैसे लगाएं?

उदाहरण के लिए:

स्ट्रिंग में खोज = "مشخصات، قیمت و خرید لپ تاپ 15 اینچی ایسر مدل Aspire ES1-533-C4UH"

और true

लौट सकते हैं और स्ट्रिंग खोज = "Aspire ES1-533-C4UH"

और वापसी false

string pattern = @"^[\p{IsArabic}\s\p{N}]+$"; 
string input = @"مشخصات، قیمت و خرید لپ تاپ 15 اینچی ایسر مدل Aspire ES1-533-C4UH"; 
RegexOptions options = RegexOptions.RightToLeft;" 

foreach (Match m in Regex.Matches(input, pattern, options)) 
{ 
    if(m.Value !="") 
    { 
     bool x=true; 
    } 
    else 
     x=false; 
} 

लेकिन यह काम नहीं करता है।

उत्तर

5

इसका उपयोग करने का प्रयास करें (मैं इसका उपयोग कर रहा हूं और यह काम करता है)।

यह Regex यूटीएफ श्रेणियों द्वारा सभी अरबी अक्षरों को स्वीकार करता है।

Regex regex = new Regex("[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]"); 
return regex.IsMatch(text); 
अरबी के लिए
+3

इसके अलावा '[ء-ي] +', लेकिन विवरण के कुछ शब्द मदद मिल सकती है ... –

+1

बस उत्सुक अगर आप यूनिकोड ब्लॉकों का उपयोग कर किसी भी अनुभव है, और अगर यह बेहतर या बदतर है? उदाहरण के लिए, '\ p {IsArabic}' https://docs.microsoft.com/en-us/dotnet/standard/base-types/character-classes-in-regular-expressions#SupportedNamedBlocks – BurnsBA

+1

+1। एक "छोटी" अधिक जानकारी के लिए [यह] (https://stackoverflow.com/a/11323651/21567) भी देखें (यद्यपि यह जावास्क्रिप्ट है)। –

संबंधित मुद्दे