التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 2 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
[مقال] شرح التعابير القياسية Regex
#1
بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته


الحمدلله والصلاة والسلام على رسوله الكريم محمد وعلى اله واصحابه

احببت ان اضع هذا المقال واعتذر بشدة ان لم اعرف شرح موضوعه بصوره جيدة ومفهومه فأنا ضعيف قليلآ في الشرح , مقالي سوف يكون ان شاء الله عن التعابير القياسية والتي تسمى 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))

بسبب الوقت... يتبع لاحقآآ.....
الرد }}}


الردود في هذا الموضوع
شرح التعابير القياسية Regex - بواسطة 3booody - 10-10-13, 03:40 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم