19-04-20, 02:08 AM
السلام عليكم و رحمة الله و بركاته
كونك تتعامل مع Regex بشكل مستمر المفروض ان تلاحقها باستمرا و تتعرف على طرقها.
تعرف على طرق كتابة الباترن.
الشرح:
بناءً على ما سبق:
يمكنك عمل اجراء ينفذ لك المطلوب كما يلي:
حاول ان تتعرف اكثر على استخدامها
اهديك هذا الموقع للتعامل مع Regex بشكل مباشر
ضع نصوصك التي تريدها و اكتب الباترن و عاين النتيجة خطوة بخطوة
و بعد ان تتأكد من نجاح العمل تأتي الخطوة الاجمل و هي انتاج كودك من الموقع مباشرة عبر Code Generator في نفس النافذة
و هو ينتج لك كود بعدة لغات برمجة و منها #C لتتعامل معه مباشرة.
regex101
بالتوفيق
كونك تتعامل مع Regex بشكل مستمر المفروض ان تلاحقها باستمرا و تتعرف على طرقها.
تعرف على طرق كتابة الباترن.
PHP كود :
Dim id_pattern As String = "^.*id:(\w+(\s\w*)?)"
الشرح:
^.*id:
و تعني نص يبدأ بـ :id (.^)
هي كل الحروف بين (a-z) و (A-Z) و الارقام (0-9) (w\)
و هي تعني عدد محارف يبدأ من 1 الى لا نهاية و يمكن تحديد العدد (+)
و يمكن ان تنوب (*) و هي تبدأ من الصفر.
و هي تعني اننا نريد شمل المسافات الفارغة (\s)
و يمكن جعل المسافات الفارغة او اي شي اخر اختياري عبر المعامل (?) فتصبح (?\s)
و يمكن كتابة الباترن السابق بطريقة اخرى
PHP كود :
id:(\w*\s?\w*)
PHP كود :
Dim phone_pattern As String = "^.*mobile_phone:(\+?(\d*))"
الشي الجديد في هذا الباترن:
(+\) . كون الاشارة + مستخدمة في تعابير Regex كمعامل رئيسي لذا وجب علينا ان نخبره اننا نريد منه تحسها كمحرف عادي نريد التعامل معه و تستخدم (\) مع اي معامل لاجباره على قرائتها كمحرف نريد البحث عنه و يسمى الهروب من التحسس.
(d\) نستخدمها للتعامل مع الخانات الرقمية و يمكنك استعمال (w\) بدلاً عنها.
PHP كود :
Dim name_pattern As String = "^.*name:(\w*\s?\w*)"
و يمكن كتابته بطريقة اخرى
PHP كود :
Dim name_pattern As String = "^.*name:(\w+(\s\w*)?)*)"
تتنوع طرق الكتابة حسب كل شخص و لاتهم الطريقة كثيراً بقدر ما تهم النتيجة.
بناءً على ما سبق:
يمكنك عمل اجراء ينفذ لك المطلوب كما يلي:
PHP كود :
Public Sub GetData()
Dim json As String = TextBox1.Text.Replace("""", "").Replace("{", "")
Dim Content = From t As String In json.Split(vbNewLine)
Dim id, name, mobile_phone As String
Dim id_pattern As String = "^.*id:(\w+(\s\w*)?)"
Dim name_pattern As String = "^.*name:(\w*\s?\w*)"
Dim phone_pattern As String = "^.*mobile_phone:(\+?(\d*))"
Dim options As RegexOptions = RegexOptions.Multiline
For p As Integer = 0 To Content.Count - 1
id = Regex.Match(Content(p).ToString, id_pattern, options).Groups(1).Value
name = Regex.Match(Content(p).ToString, name_pattern, options).Groups(1).Value
mobile_phone = Regex.Match(Content(p).ToString, phone_pattern, options).Groups(1).Value
Dim Row As String() = New String() {id, name, mobile_phone}
DataGridView1.Rows.Add(Row)
ListBox3.Items.Add(String.Join(" , ", Row))
'ListBox3.Items.Add(name)
Next
End Sub
حاول ان تتعرف اكثر على استخدامها
اهديك هذا الموقع للتعامل مع Regex بشكل مباشر
ضع نصوصك التي تريدها و اكتب الباترن و عاين النتيجة خطوة بخطوة
و بعد ان تتأكد من نجاح العمل تأتي الخطوة الاجمل و هي انتاج كودك من الموقع مباشرة عبر Code Generator في نفس النافذة
و هو ينتج لك كود بعدة لغات برمجة و منها #C لتتعامل معه مباشرة.
regex101
بالتوفيق
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال


