10-10-13, 03:40 PM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
الحمدلله والصلاة والسلام على رسوله الكريم محمد وعلى اله واصحابه
احببت ان اضع هذا المقال واعتذر بشدة ان لم اعرف شرح موضوعه بصوره جيدة ومفهومه فأنا ضعيف قليلآ في الشرح , مقالي سوف يكون ان شاء الله عن التعابير القياسية والتي تسمى Regex
وهي عبارة عن فئة تابعة لمجال الاسماء
System.Text.RegularExpressions
فوائدها هو التحقق من النصوص ان كانت عربية او انكلزية او اردت ان تتأكد من صحة البريد الالكتروني مكتوب بصوره صحيحة او رقم هاتف وغيرها كثيرآ.
على بركة الله...
اولآ نقوم بإستدعاء مجال الاسماء
System.Text.RegularExpressions
ثم نقوم بإنشاء فئة جديده بإرسال مشيد من النوع String
كود :
Dim Rgx As New Regex("نص تحقق")
هو عبارة عن نص يتم التحقق منه ويمكن كتابة رموز لوضع شروط معينة مثلآ اذا الكلمة كانت في بداية الجمله أو بعدها شي معين أو غيرها.
الان تطبيق عملي نقوم بفتح فورم جديد ووضع صندوق نص وزر بوتون
نكتب الكود التالي في زر بوتون
كود :
Dim Rgx As New Regex("Vb")
If Rgx.IsMatch(TextBox1.Text) Then
MsgBox("الكلمة موجوده")
Else
MsgBox("الكلمة غير موجوده")
End If
الكود السابق للبحث عن كلمة Vb اذا وجدها في صندوق النص راح يظهر صح , ولاتنسى ان الحروف الصغيرة تختلف عن الحروف الكبيره
طيب فهمنا الغرض الان نضع شرط ان يبحث عن نفس الكلمة لكن اذا كانت في بداية الجمله فقط نضع هذا الرمز ^ قبل الكلمة
كود :
Dim Rgx As New Regex("^Vb")
If Rgx.IsMatch(TextBox1.Text) Then
MsgBox("الكلمة موجوده في بداية الجمله")
Else
MsgBox("الكلمة غير موجوده في بداية الجمله")
End If
و اذا اردنا ان نتأكد ان الكلمة موجوده في نهاية الجمله نضع هذا الرمز $ في نهاية الكلمة
كود :
Dim Rgx As New Regex("Vb$")
If Rgx.IsMatch(TextBox1.Text) Then
MsgBox("الكلمة موجوده في نهاية الجمله")
Else
MsgBox("الكلمة غير موجوده في نهاية الجمله")
End If
ايضآ يمكن استخدام الاقواس[] ووضع احرف او ارقام بها وهي للتأكد ان احد الاحرف موجوده مثلآ
كود :
Dim Rgx As New Regex("[ab]")
MsgBox(Rgx.IsMatch(TextBox1.Text))
كما نستخدم . النقطة للبحث عن أي حرف في كلمة معينة مثلآ لو اردت البحث عن أي كلمة تحتوي حروف معينة ولا تعرف الحرف الوسطي لها
كود :
Dim Rgx As New Regex("3booo.y")
MsgBox(Rgx.IsMatch(TextBox1.Text))
اما اذا اردنا البحث عن رمز من الرموز التي ذكرتها طبعآ المترجم يعتبرها كما هي الا بشرط ان تضع \ قبلها
كود :
Dim Rgx As New Regex("Vb\.Net")
MsgBox(Rgx.IsMatch(TextBox1.Text))
وتستطيع وضع شروط اكثر مثلآ التحقق اذا كان النص المدخل يحتوي على حروف انكليزية صغيرة بين الحرفين الذان تضعهما من خلال وضع الحرف الاول و - والحرف الثاني داخل القوسين []
كود :
Dim Rgx As New Regex("[a-k]")
MsgBox(Rgx.IsMatch(TextBox1.Text))
واذا اردت عن حروف كبيرة نفس الشي مع تغيير الحروف
كود :
Dim Rgx As New Regex("[A-Z]")
بل واكثر تستطيع البحث عن الحروف الصغيرة والكبيرة
كود :
Dim Rgx As New Regex("[a-zA-Z]")
MsgBox(Rgx.IsMatch(TextBox1.Text))
وللتأكد ان هناك حروف عربية داخل النص نضع
كود :
Dim Rgx As New Regex("[ء-ي]")
MsgBox(Rgx.IsMatch(TextBox1.Text))
للتأكد ان هناك رقم
كود :
Dim Rgx As New Regex("[0-9]")
MsgBox(Rgx.IsMatch(TextBox1.Text))
بسبب الوقت... يتبع لاحقآآ.....