تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
استفسار لخبراء Regular expression
#1
السلام عليكم ورحمة الله وبركاته لدي استفسار لخبراء regex
كيف استطيع استخلاص جميع الجمل التي داخل label
مع ملاحظة تغير ما بين علامتي التنصيص كما هو ظاهر باللون الأحمر
<label for="user-43">الأسم</label>
<label>االمؤهل</label>
<label for="age_br">العمر</label>



كيف استخلص هذه الكلمات الأسم ,العمر, المؤهل
اثنان لا يتعلمان المتكبر والخجول
Heart اللهم علمنا ما ينفعنا و انفعنا بما علمتنا وَ زِدْنا علماً‏ Heart
الرد
تم الشكر بواسطة:
#2
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)
الرد
تم الشكر بواسطة: silverlord
#3
(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>
اثنان لا يتعلمان المتكبر والخجول
Heart اللهم علمنا ما ينفعنا و انفعنا بما علمتنا وَ زِدْنا علماً‏ Heart
الرد
تم الشكر بواسطة:
#4
كود :
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
الرد
تم الشكر بواسطة: sami2015 , silverlord
#5
شكراً لك اخي DITK
اثنان لا يتعلمان المتكبر والخجول
Heart اللهم علمنا ما ينفعنا و انفعنا بما علمتنا وَ زِدْنا علماً‏ Heart
الرد
تم الشكر بواسطة:



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


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