الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن Regular Expressions

مغلق
بدأه lelian في 20 أبريل 2007 · 9 رد · 816 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اردت كتابة تعبير يقبل نص عربي يبدأ بحرف ويتألف من حروف وارقام واندرسكور

فكتبت هذه الصيغة

 pattern = "[ء-ي]" + "[_ء-ي0-9]+"

لكنني لاحظت انه في حالة النصوص التي تحوي على بعض الحروف الخاصة فإنه يقبل هذه الصياغة

وكذلك لو كان يبدأ برقم فإنه يقبلها :blink:

فهل المشكلة بسبب التعامل مع الحروف العربية ,ام ان الصيغة التي كتبتها خاطئة

وجزاكم الله خيرا

#2

أعرف انه Regular exprission كأداة موجودة في ASP.Net والسؤال في منتدى آخر

وغير كده أعتقد انه السؤال محتاج لتوضيح أكثر وان شاء الله نقدر نساعدك

#3

اخي الكريم

اتقصد ان Regular exprission فقط في ASP

غريب فانا قد اطلعت على دروس الاخ الغملاسي (جزاه الله خير)في Regular exprission وهذه الدروس في منتدى الفيجوال بيسك نت

اما بالنسبة للمطلوب

اعتقد ان هذا الكود يوضح الفكرة

   
	   Dim pattern As String

		pattern = "[ء-ي]" + "[_ء-ي0-9]+"

		If Regex.IsMatch("اسم1", pattern) Then
			'مقبولة
		Else
			'غير مقبولة
		End If
#4
Scoool كتب:
أعرف انه Regular exprission كأداة موجودة في ASP.Net والسؤال في منتدى آخر

وغير كده أعتقد انه السؤال محتاج لتوضيح أكثر وان شاء الله نقدر نساعدك

نعم موجودة في ASP .net وكذلك باقي أقسام .net

lelian كتب:
السلام عليكم

اردت كتابة تعبير يقبل نص عربي يبدأ بحرف ويتألف من حروف وارقام واندرسكور

فكتبت هذه الصيغة

 pattern = "[ء-ي]" + "[_ء-ي0-9]+"

لكنني لاحظت انه في حالة النصوص التي تحوي على بعض الحروف الخاصة فإنه يقبل هذه الصياغة

وكذلك لو كان يبدأ برقم فإنه يقبلها :blink:

فهل المشكلة بسبب التعامل مع الحروف العربية ,ام ان الصيغة التي كتبتها خاطئة

وجزاكم الله خيرا

انظر موضوعي التحقق من السلاسل النصية والأرقام والتواريخ,باستخدام Regular Expressions وموضوعي البحث عن الكلمات والنصوص المقتبسة, باستخدام Regular Expressions لعلك تجد مبتغاك في أحدهما

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#5

استاذ محمد

في موضوع لك "تعابير نظامية جاهزة للاستخدام"

قرأت انه لكتابة تعبير يصف كلمة تكون فيها الحرف الأول كبير والباقي صغيرفالتعبير سيكون

[A–Z][a–z]+

اذن لكلمة تبدأ بحرف ثم تقبل حروف وارقام واندر سكور فالتعبير سيكون

[A-Za-z][A-Za-z0-9_]+

المشكلة هنا لو المطلوب التعامل مع احرف عربية

قرات للأخ الغملاسي في موضوعة "سلسلة تعلم Regular Expressions, الدرس الأول "

اقتباس
كذلك بما أن اللغة العربية تعمل بعض الفُرُقات مع اللغات التي تبدأ من اليسار ,

فقط إستبدل الحرف z بالهمزة (ء) و إستبدل الحرف a البياء (ي)

وهذا ما فعلته , اذن ماسبب المشكلة؟؟

#6

السلام عليكم

pattern = "^[\u0621-\u064a][\u0621-\u064a_0-9]+$"

والله أعلم

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

#7

مشكور استاذ Mo7eb_Alrasool

لاحظت ان التعبير لا يقبل السلسلة المكونة من حرف واحد ,فما السبب؟

واذا ممكن ان توضح المقصود بالارقام الموجودة في التعبير

وكذلك الرمز \u

وجزاك الله خير

تم تعديل هذه المشاركة بواسطة lelian في 21 أبريل 2007 في 17:10

#8

الظاهر اني حارجع اشتغل عالوندوز من جديد

شكرا للمعلومة

#9

السلام عليكم

لجعله يقبل حرف واحد على لأق استبدل ال + ب {0,}

اي كالتالي

^[\u0621-\u064a][\u0621-\u064a_0-9]{0,}$

اما ال \u فتأخذ بعدها اربعة ارقام بالنظام السادس عشري (hexadecimal)

وهذه الأرقام هي كود الحرف

واله أعلم

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

#10

جزاك الله خير استاذ Mo7eb_Alrasool :)

هذا الموضوع مغلق.

مواضيع مشابهة