سلام
آقای مصافی!
1- واقعا ممنون
2- اگه متن جستجو خودش اعراب داشته باشه، نمیاره که خوب معلومه چرا. من اومدم یه تابع مثل تابع IsTextSame شما اینطوری نوشتم:
Private Function DelDiacratics(ByVal sArabic As String) As String
Dim tmpSimple As String = sArabic
tmpSimple = tmpSimple.Replace("ً", "") 'تنوین نصب
tmpSimple = tmpSimple.Replace("ٌ", "") 'تنوین رفع
tmpSimple = tmpSimple.Replace("ٍ", "") 'تنوین جر
tmpSimple = tmpSimple.Replace("َ", "") 'فتحه
tmpSimple = tmpSimple.Replace("ُ", "") 'ضمه
tmpSimple = tmpSimple.Replace("ِ", "") 'کسره
tmpSimple = tmpSimple.Replace("ّ", "") 'تشدید
Return tmpSimple
End Function
و تابع SearchText شما را هم اینطوری عوض کردم:
Public Function SearchText(ByVal SearchTerm As String) As Boolean
Dim RegexSearchTerm As String = CreateRegxForSearch(DelDiacratics(SearchTerm))
res = Regex.Match(_Text, RegexSearchTerm)
If res.Success AndAlso IsTextSame(res.Value.Trim, DelDiacratics(SearchTerm)) Then
_Index = res.Index
_Lenght = res.Length
Return True
Else
Return False
End If
End Function
در اینصورت برای مثل "اهدِنا" درست شد ولی چرا برای مثل "اَلحَمدُلِله " جواب نمیده؟