بسم الله :coffe:
ساشرح الاكواد غير Pattern شرح بسيط
إقتباس : Dim wb As New System.Net.WebClient() With {.Encoding = System.Text.Encoding.UTF8}
هذا الكائن تقدر تستخدم فيه رفع ملفات او تحميل ملفات او تحميل نصوص من صفحة فيه دوال كثيرة لم استخدم الا Download صفحة,ملف لكن الي نريده هو جلب سورس صفحة
إقتباس : Dim ContentPage As String = wb.DownloadString(txtLnk.Text & "f" & txtNumPage.Text & "-montada")
هنا قمنا بتحميل سورس الصفحة وتخزينها في متغير ContentPage محتوى الصفحة وبين الاقواس وضعنا الرابط مع جلب ك القسم من تكست بوكس
ايضا يوجد مصوفة عامه راح تعرف ليه استخدمناها
هذا الكود
إقتباس : Dim Topics As MatchCollection
راح تحصل بالاكواد الي عطيتك هكذا
إقتباس :Dim Topics As System.Text.RegularExpressions.MatchCollection
لاني لم استدعي فضاء RegularExpressions بـ
Imports System.Text.RegularExpressions
هنا
إقتباس :Dim Topics As System.Text.RegularExpressions.MatchCollection
قمنا بانشاء مصفوفة خاصه بجلب جميع النصوص الذي تطابق الPattern وراح تعطينا تواصل افضل ك جلب جروب ورقم عنصر
ثم قمنا بتخزين هذا الكود بداخلها
إقتباس :Regex.Matches(ContentPage, "t(\d+)-topic"">([أ-يآء\w\s|،ٍِْ~ًٌَُ:#!\.,$()«»""\[\]@^&*-]{2,})", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
regex.matches راح تجلب الجميع regex.match راح تجلب اول عنصر يطابق الPattern
هذا هو الpattern لا تقلق باذن الله ستعتبره شئ بسيط وراح اعطيك درسين راح تفهم اكثر من شرحي
نرجع لسورس الصفحة قسم 6
هكذا تكون المواضيع
يسبق اسم الموضوع <"href="/t00000-topic
الارقام راح تختلف من موضوع لموضوع
نرحع للPattern
راح نبدا من الحرف tثم ارقام
اخبرته بانه يطابق حرف t ثم قوس لا تهتم بالقوس لانه يعني جروب واستخدمناه لجلب رقم الموضوع وحده
ثم \d وهي تعني رقم ووضعت + بجابنها لكي تعني ارقام
اوضح اكثر
لو قمت بإزالة ال+ راح يطابق فقط t1
مع + راح يطابق t136519 هذا الرقم موجود في الصورة اعلى
المهم + تعني واحد او اكثر
ثم هناك شَرطة - وضعتها بعد القوس لكي يكون الجروب خاص برقم الموضوع
ثم اخبرته بان بعد الشَرطة - كلمة topic ثم " وضعتها مرتين لان في الفيجوال بيسك لو وضعتها مره راح يعتبرها نهاية النص لذلك لازم اخبره بانها حرف
ثم <
الان ناتي للمهم
وضع قوس جروب لاجلب فقط اسماء المواضيع
الان القوس هذا [] راح يطابق مثل الي في القوس
نبتعد عن الPattern جلب المواضيع
راح اجلب فقط الاسماء الي تبدا ب حرف A و M
شاهد هنا :
http://regexr.com/3dsja
اتمنى وضحت الفكرة لك
نرجع ل
الان اخبرته بعد كل<"href="/t00000-topic
طابق لي الي احددها لك وقمت بحديد له
أ-ي جميع الحروف العربية او اقدر اقوله [ابتثجحخ] الخ لكن لها اختصار ونستخدمه
ايضا مع الحروف الانجليزية [a-z] لكن فقط سيطابق الحروف الصغيرة لذلك [a-zA-Z] لكن هناك اختصار وهو \w
\w سيطابق جميع الحروف الانجليزية ايضا _ والارقام
ثم \s سطابق مسافة " "
الباقي اخبرته انه قد يكون في النص وليست لها معنى بالregex
قد ترى \ كثيرة بسبب ان بعض الرموز لديها معنا ونخبره بانه يعتبرها كحرف باضافة \ قبلها لكن الى الان لست متاكد من هذا الامر لانه قد يقوم بتعطيلها تلقائي في بعض الحالات
ثم بعد الاقواس []
وضعت قوس {}
اذا وضعت رقم بداخلها فانت تخبره بان يطابق قبل القوس (حرف) على هذا العدد
مثال :
http://regexr.com/3dsjp
ولو وضعت فاصلة {3,5} فتخبره بان الحرف قبل القوس يكون اقل تكرار 3 واكثر تكرار 5
ايضا {5,} 5 او اكثر واذا كانت الفاصلة عكس 5 او اقل
اعتقد انك فهمت اين تضع الرموز الجديدة
ولا تنسى تعطيل معنى حرف - بإضافة \ قبله لكي لا تهتم له لاحقا بان يجب ان يكون بالاخير
وهذه الدروس يجب ان تشاهدها اذا كنت تريد التعلم واي استفسار اثناء تعلمها ضع موضوعك وان شاء الله مانقصر معك
https://www.youtube.com/watch?v=ppHCfWrZ...xtn8PUtEIo
------------------------
الاكواد الاخيرة
إقتباس : For i As Short = 0 To Topics.Count - 1
ListBox1.Items.Add(Topics(i).Groups(2).Value)
NPages.Add(Topics(i).Groups(1).Value)
Next
قمنا بعمل حلقة تكرارية من اول عنصر الى اخر عنصر موجود في المصفوفة topics
ثم قمنا بإضافتها الى ListBox
لو ماوضعت جروب خاص لرقم الموضوع وايضا لاسم الموضوع
لذلك ساجعل الكود هكذا
إقتباس : For i As Short = 0 To Topics.Count - 1
ListBox1.Items.Add(Topics(i).Value)
NPages.Add(Topics(i).Value)
Next
وهذا الناتج
الجروب رقم 0 راح يكون ايضا مثل الناتح بالصورة الجروب رقم 1 رقم يكون ارقام المواضيع ورقم 2 اسم المواضيع
وايضا قمنا بإضافة ارقام المواضيع في المصوفة العامه NPage
اسف اذا كان الشرح ملخبط
نصيحه : اذا كنت تريد التعلم لا تبدا باشياء كبيره
في البداية تحقق من رقم هاتف لدوله معينه ايضا تحقق من البريد الاكتروني شكله صحيح وليس اي نص يدخل
وقم بعمل تجارب
والله يوفقك