منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

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



كيف استخلص هذه الكلمات الأسم ,العمر, المؤهل
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)
(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>
كود :
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
شكراً لك اخي DITK