المطور العربي
الأثنين - 12/5/2008 م
الصفحة الرئيسية . كيف ؟ . دروس . إتصل بنا تكبير الخط

التعبيرات القياسية ( Regular Expressions )
تأليف : mubarmej6/9/2001

الصفحات

عرض نسخة قابلة للطباعة من الصفحة طباعة الصفحة

المجالات

في العبارات السابقة كنا نبحث دائما عن أحرف وعبارات محددة مثل الحرف a والعبارة (Hi) وغيرها، ولكن ماذا لو أردنا أن نبحث عن عبارة تبدأ برقم، ونعني بذلك أي رقم من الصفر إلى التسعة، فكيف نقوم بذلك؟

الحل هنا يكون باستخدام المجالات، سنطلب من البرنامج أن يجد لنا عبارة تبدأ بخانة تقع ضمن نطاق الأرقام، ويكون ذلك بهذه العبارة القياسية : ^[0-9]

الرمز الأول في العبارة السابقة كما نعلم يعبر عن بداية العبارة، أما الجزء الذي يليه فهو المجال نفسه، أي أننا نستخدم المجال مكان الحرف الأول، في المثال السابق وضعنا الحرف d لنبحث عن عبارات تبدأ بالحرف d الآن قمنا بوضع المجال لنبحث عن عبارات تبدأ بحرف أو رمز يقع ضمن المجال، المجال الذي حددناه في العبارة السابقة هو مجال الأرقام من 0 ( صفر ) إلى 9، كما تلاحظ يكون المجال بين قوسين مربعين، ويكتب فيه الحرف الأول من المجال ثم علامة الطرح ( الناقص ) وبعد ذلك الحرف الأخير من المجال، وتعبير المجال بأكمله يطابق الحرف الأول منه، والحرف الأخير منه، وجميع الحروف التي بينهما.

حسنا، دعنا الآن نقوم بعمل قالب للبحث عن العبارات التي تبدأ بأحد الأرقام الإنجليزية الصغيرة Lowercase، سيكون هذا القالب كالتالي : ^[a-z]

والآن قالب لمطابقة العبارات التي تبدأ بالحروف الكبيرة، وسيكون هكذا : ^[A-Z]

ماذا لو أردنا البحث عن عبارة تبدأ بحرف ما، ساواءا كان كبيرا أو صغيرا؟ سنستخدم إذا القالب التالي : ^[a-zA-Z]

كما تلاحظ، استخدمنا أكثر من مجال بين القوسين المربعين، وهذا أمر مسموح، بحيث نضع المجالات متلاصقة واحدة تلو الأخرى، وهذا التعبير يطابق أي حرف يقع ضمن أي من المجالات المستخدمة.

حسنا، نريد الآن عمل مجال لنرى ما إذا كان الحرف الأول من العبارة من الحروف b أو c أو d أو e، سواءا كانت كبيرة أم صغيرة، لعمل ذلك سنستخدم القالب التالي : ^[b-eB-E]

كما هو واضح، يوجد مجالان في العبارة السابقة، الأول للحروف الصغيرة من b إلى e، والثاني للكبيرة من B إلى E.

في المجالات

عرفنا فيما سبق كيف نطلب من البرنامج أن يقوم بمطابقة رمز يقع ضمن مجال ما، فكيف نطلب منه أن يطابق رمزا يقع خارج نطاق ما؟ يتم ذلك ببساطة وبنفس الطريقة مع إضافة الرمز ( ^ ) إلى داخل الأقواس المربعة، فإذا أردنا البحث عن أي عبارة لا تبدأ برقم، فإننا نستخدم التعبير التالي : ^[^0-9]

كما تلاحظ استخدام الرمز ( ^ ) داخل أقواس المجال يختلف عن استخدامه خارجها، في الخارج يعني بداية النص، وفي داخل أقواس المجال فإنه يعني نفي المجال، أو مطابقة ما لا يقع ضمن المجال.

يمكنك على سبيل المثال عمل برنامج لتسجل المستخدمين الجدد في شبكتك على الويب أو ساحة الحوار الخاصة بك، وأردت من المستخدم أن يختار إسم المستخدم الذي يريده بحيث يكون اسم المستخدم مكونا من الأرقام والحروف الإنجليزية فقط، فيمكنك أن تستخدم القالب التالي : [^0-9a-zA-Z]

القالب السابق يبحث عن الحروف التي لا تطابق المجال المدخل، فإذا وجد البرنامج شيئا في اسم المستخدم لا يطابق هذه العبارة ( لا يطابق المجال ) فهذا يعني بأن المستخدم أدخل رمزا لا يعتبر من الحروف والأرقام، فيمكنك الآن أن تمنعه من عمل ذلك.

<< التكرارجدول المحارف >>



جميع الحقوق محفوظة - المطور العربي 2000   ©   All Rights Reserved - ArabBuilder.com 2000