تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
احد يعطيني مثال بسيط عن : regular expression
#3
السلام عليكم ورحمة الله وبركاته

فعلاً هذه اللغة معقدة جداً وهنيئاً للذي يفهمها فهي تؤدي أغلب الأعمال التي تريد تنفيذها (إذا فهمت صح كيف تستخدمها)

لي محاولات صغيرة معها وقد استفدت من مشاركات الأخوين (Ramilove و أحمد الحربي)

علي العموم هذه طريقة مبسطة لعمل ما تريد :

نستود مجال الأسماء :
كود :
Imports System.Text.RegularExpressions

الكود :
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        ' الباترن هو ما نريد البحث عنه بإدخال الرموز التي تفهما اللغة
        Dim Patren As String = "(<!\[CDATA\[(.*)\]\]>)"
        ' الأقواس المعقوفة وضعتها عشان يعتبر كل النص مجموعة واحدة
        ' كذلك وضعت أقواس معقوفة حول النص الذي تريد استخراجه لأنه سيفيدنا لاحقا كما سنرى
        ' لو لاحظت وضعت علامة الإسلاش أما الأقواس المربعة
        ' ذلك لأنها من الرموز المحجوزة للغة
        ' وبعدين وضعت بدل النص الذي تريد استخراجه نقطة ونجمة يعني أبحث عن أي شيء في هذا المكان بالتحديد


        '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
        ' إنشاء كلاس البحث ونعطيه النص الذي نريد البحث فيه
        ' وكذلك الباترن
        'علي ما أعتقد تعني البحث في أي حالة من حالات الأحرف RegexOptions.IgnoreCase الـ
        Dim Mc As MatchCollection = Regex.Matches("[b][color=#b22222]Put Text Here[/color][/b]", Patren, RegexOptions.IgnoreCase)


        ' التحقق من احتواء الكلاس علي نتيجة
        If Mc.Count > 0 Then


            ' حلقة للمرور علي النتائج
            For i As Integer = 0 To Mc.Count - 1
                ' كما قلت سابقا وضعت الأقواس المعقوفة في الباترن لجعل النص في قروبات وهنا سنستفيد من ذلك
                ' هنا سنعرض القروبات المحتملة من 0 إلي 3 مثلاً ونجرب إذا وجدنا أحد القروبات يحوي النتيجة
                ' طبعاً إذا ما وجد نتيجة في القروبات من 0 إلي 3 ممكن نضيف قروبات أخرى 4 و 5 و 6 حتى نصل لنتيجة
                ' في هذا المثال النتيجة موجودة في القروب رقم 2 يعني ممكن تحذف الأول والثاني
                ' يمكنك بعد ذلك إسناد النتيجة لمربع نص أو أي شئ آخر
                MsgBox(Mc(i).Groups(0).Value, MsgBoxStyle.Exclamation, "Groups 0") ' يمكنك أن تحذف هذا
                MsgBox(Mc(i).Groups(1).Value, MsgBoxStyle.Exclamation, "Groups 1") ' وهذا أيضاً
                MsgBox(Mc(i).Groups(2).Value, MsgBoxStyle.Exclamation, "Groups 2") ' اترك هذا لاحتوائه علي النص المطلوب
            Next i
        End If
    End Sub

في مكان الـ Put Text Here ضع النص الذي تريد البحث ضمنه مثلا تضع نصك السابق اللي تحت :
كود :
[color=#333333][FONT=Verdana][i]<![CDATA[welcome here]]>[/i][/FONT][/color]

لو لاحظت أنا تركت القروبات الثلاثة في المثال (كان ممكن أحذف الأول والثاني وأترك الثالث) لكن فضلت تركها عشان تعرف أنني بعرف النتيجة بتلك الطريقة المملة

أحيانا لو النص متشعب قد تصل القروبات إلي 10 أو أكثر حتى تأتي بالنتيجة المطلوبة

طبعا اللي يفهم هذه اللغة قد يجد طريقة أسرع وأفضل من هذه Smile
(وَقُل رَّبِّ زِدْنِي عِلْمًا)

الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
احد يعطيني مثال بسيط عن : regular expression - بواسطة kslawy - 06-04-13, 03:14 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] يوجد مثال|كيف نعيد صياغة نص ليكون تاريخ مقبول justforit 7 304 01-11-25, 10:54 PM
آخر رد: justforit
  [VB.NET] مثال و مشكلة (تشفير نص) mmaalmesry 5 899 09-05-25, 08:05 AM
آخر رد: mmaalmesry
  ارجو تعديل الكود جلب البيانات عن طريق اجراء مخزن - مرفق مثال new_programer 0 621 05-02-25, 01:51 AM
آخر رد: new_programer
  اريد جلب عدد محدد من السجلات من قاعدة بيانات اكسس الى الداتا قراد فيو يوجد مثال khalidalwdi 2 667 12-11-24, 12:19 PM
آخر رد: khalidalwdi
  وجدت كود بسيط للصلاحيات وعدلته ليناسب مشروعي ولكن ظهرت بعض الأخطاء F.H.M 1 278 17-09-24, 09:34 PM
آخر رد: F.H.M
  اريد اضافة حفظ PDF فى مسار على الهارد- مثال الاستاذ عبدالله الدوسري new_programer 1 520 28-04-24, 04:52 PM
آخر رد: new_programer
  سؤال بسيط يا احبتى فى الله خالد كامل1 4 618 07-01-24, 12:55 AM
آخر رد: Mujahef
Tongue استفسار بسيط عن كريستال ريبورت waataanys 1 562 30-11-23, 04:44 PM
آخر رد: Taha Okla
  data type mismatch in criteria expression access um_noor20 3 791 08-10-23, 10:14 AM
آخر رد: um_noor20
  اريد اضافة متغيراخر داخل Listbox1 احتاج تعديل بسيط moh61 0 548 05-08-23, 02:29 PM
آخر رد: moh61

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


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