منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
استفسار لخبراء Regular expression - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (https://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (https://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (https://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : استفسار لخبراء Regular expression (/showthread.php?tid=12238)



استفسار لخبراء Regular expression - silverlord - 07-05-15

السلام عليكم ورحمة الله وبركاته لدي استفسار لخبراء regex
كيف استطيع استخلاص جميع الجمل التي داخل label
مع ملاحظة تغير ما بين علامتي التنصيص كما هو ظاهر باللون الأحمر
<label for="user-43">الأسم</label>
<label>االمؤهل</label>
<label for="age_br">العمر</label>



كيف استخلص هذه الكلمات الأسم ,العمر, المؤهل


RE: استفسار لخبراء Regular expression - sami2015 - 07-05-15

Dim input As String = _
"<label for=""user-43"">الأسم</label>" & vbNewLine & _
"<label>االمؤهل</label>" & vbNewLine & _
"<label for=""age_br"">العمر</label>"

Dim input1 As String = System.Text.RegularExpressions.Regex.Match(input, "(?=<label for=""user-43"">)[^*]*(?=<label for=""age_br"">)").Value
Dim nam As String = System.Text.RegularExpressions.Regex.Match(input1, "(?<=<label for=""user-43"">).+?(?=</label>)").Value
Dim edu As String = System.Text.RegularExpressions.Regex.Match(input1, "(?<=<label>).+?(?=</label>)").Value
Dim old As String = System.Text.RegularExpressions.Regex.Match(input, "(?<=<label for=""age_br"">).+?(?=</label>)").Value

MsgBox(nam & vbNewLine & edu & vbNewLine & old)


RE: استفسار لخبراء Regular expression - silverlord - 08-05-15

(07-05-15, 12:34 PM)sami2015 كتب : Dim input As String = _
  "<label for=""user-43"">الأسم</label>" & vbNewLine & _
  "<label>االمؤهل</label>" & vbNewLine & _
  "<label for=""age_br"">العمر</label>"

Dim input1 As String = System.Text.RegularExpressions.Regex.Match(input, "(?=<label for=""user-43"">)[^*]*(?=<label for=""age_br"">)").Value
Dim nam As String = System.Text.RegularExpressions.Regex.Match(input1, "(?<=<label for=""user-43"">).+?(?=</label>)").Value
Dim edu As String = System.Text.RegularExpressions.Regex.Match(input1, "(?<=<label>).+?(?=</label>)").Value
Dim old As String = System.Text.RegularExpressions.Regex.Match(input, "(?<=<label for=""age_br"">).+?(?=</label>)").Value

MsgBox(nam & vbNewLine & edu & vbNewLine & old)

شكرا لك اخي سامي
لكن regex الذي وضعته غير عملي
مثلاً
  "<label for=""user-43"">الأسم</label>" & vbNewLine & _
  "<label>االمؤهل</label>" & vbNewLine & _
  "<label for=""age_br"">العمر</label>"

لو تلاحظ الجمل المحددة باللون الأحمر متغيرة  وغير ثابتة  ربما تكون هكذا

<label for="vb4arb">الأسم</label>
<label>االمؤهل</label>
<label for="vb">العمر</label>[/code]
فـ regex الذي وضعته لن يعمل وهنا المشكلة لابد من وضع regex يتجاهل اي شيء مكان *.*
<label *.*><label>
<label for="vb4arb">
<label for="vb4arb">الأسم</label>


RE: استفسار لخبراء Regular expression - DITK - 08-05-15

كود :
Dim matches As MatchCollection = Regex.Matches(TextBox1.Text, "<labe.+>(.*?)<\/label>", RegexOptions.IgnoreCase)
        For Each match As Match In matches
            TextBox2.Text &= match.Groups(1).Value & vbNewLine
         Next



RE: استفسار لخبراء Regular expression - silverlord - 09-05-15

شكراً لك اخي DITK