بتـــــاريخ : 2/26/2011 3:17:55 AM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 1367 0


    مشروع Arabic PHP .NET Framework : م RegularExp الدرس الثالث : System.RegularExpressions

    الناقل : elmasry | العمر :42 | الكاتب الأصلى : الحسين | المصدر : www.arabteam2000-forum.com

    كلمات مفتاحية  :

    [FONT=Arial]بسم الله الرحمن الرحيم

    أولا قبل أن أبداء أحب أن أشكر الأخ الكريم راكان الحنيطي مشرف هذا القسم علي إدراكه لأهمية الموضوع
    وحتي يمكن أكثر عدد ممكن من الإستفادة , فشكرا جزيلا له .

    المجموعة System.RegularExpressions
    تقدم هذه المجموعة طريقة سهلة للتعامل مع التعبيرات المنتظمة (Regular Expressions)
    وبالطبع لا يخفي علي مبرمجي البي أتش بي والبيرل هذا المصتلح
    لذلك لن أتترك لشرح التعبيرات المنتظمة , بل سأكتفي بطرح المجموعة System.RegularExpressions

    تضم هذه المجموعة الفئات التالية وهي
    + Regex Class
    تتميز هذه الفئة بالتالي :
    - هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System
    - تعتبر الفئة الأساسية بالمجموعة System.RegularExpressions

    + Match Class
    تتميز هذه الفئة بالتالي :
    - هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System
    - تعبر هذه الفئة علي وحدة تماثل النمط pattern مع النص الممرر input string
    وتتميز بعاملين :
    * Index : ويعبر عن موقع الحرف الأول للقيمة التي تماثل النمط
    * Value : وتمثل القيمة التي تماثل النمط

    + MatchCollection Class
    تتميز هذه الفئة بالتالي :
    - هذه الفئة مشتقة من الفئة ArrayList الموجودة بالمجموعة System.Collections
    - وتمثل مصفوفة من النصوص التي تم تماثلها مع النمط , او بشكل أدق هي مصفوفة عناصرها كائنات من نوع الفئة Match

    ويوضح الشكل التالي تركيب المجموعة System.RegularExpressions
    (لاحظ أن الأعضاء أمثال الدوال والثوابت والمتغيرات التي تحتها خط تعبر عن أعضاء إستاتيكية Static members)

    Resized to 71% (was 924 x 483) - Click image to enlargePosted Image


    لاحظ أن المجلد System.RegularExpressions يحتوي علي التالي
    - الملف Match.php يحتوي علي الفئة Match
    - الملف MatchCollection.php يحتوي علي الفئة MatchCollection
    - الملف Regex.php يحتوي علي الفئة Regex

    كيف يمكننا إستخدام هذه الفئات :
    سوف ندرج في مجلد ال bin مجموعة ال System.RegularExpressions كما يلي
    Posted Image

    يمكننا إستخدام تلك الفئات من خلال عمل تضمين including لمحتويات الملف التالي
    WebApplication3/bin/System.RegularExpressions.php
    وهذا هو محتوي الملف

    <?
    include_once "System.php";
    include_once "System.Collections.php";

    include_once "System.RegularExpressions/Match.php";
    include_once "System.RegularExpressions/MatchCollection.php";
    include_once "System.RegularExpressions/Regex.php";
    ?>


    مثال لإستخدام الفئة Regex
    <script language="php">
    // إستخدام مكتبة System.RegularExpressions
    include_once "../bin/System.RegularExpressions.php";

        // Creates Regex
        $regexp1 = new Regex("/\\w+/");

        echo "<pre>" . $regexp1->GetType() . "</pre>";

        // IsMatch
        echo "<br> [IsMatch] : " . (( $regexp1->IsMatch("mezo") )? "true" : "false");
        echo "<br> [IsMatch] : " . (( $regexp1->IsMatch("?") )? "true" : "false");

        // Replace
        $regexp1->Pattern = "/m/";
        echo "<br> [Replace] : " . $regexp1->Replace("Hello mezo man", "M");
           
        $regexp1->Pattern = "/m|h/i";
        echo "<br> [Replace] : " . $regexp1->Replace("Hello mezo man", "M");

        // Split
        $regexp1->Pattern = "/ /";
        echo "<br><pre> [Split] : " . print_r($regexp1->Split("Hello mezo man"), true) . "</pre>";
           
        $regexp1->Pattern = "/ m/";
        echo "<br><pre> [Split] : " . print_r($regexp1->Split("Hello mezo man"), true) . "</pre>";
    </script>


    مثال أخر لإستخدام الفئات Regex و MatchCollection و Match
    <script language="php">
    // إستخدام مكتبة System.RegularExpressions
    include_once "../bin/System.RegularExpressions.php";

        // Creates Regex
        $regexp1 = new Regex("/(he\\S*)|(z(o))/");
        $str = "hello mezo , is he man?";

        // Matches
        $matchCol = $regexp1->Matches($str);
        for( $i=0; $i<$matchCol->Count(); $i++ ) {
             $match = $matchCol->Items[$i];
             
             echo "[Match " . ($i+1) . "]<br>";
             echo "Value  : " . $match->Value . "<br>";
             echo "Length : " . $match->Length() . "<br>";
             echo "Index  : " . $match->Index . "<br><hr>";
        }
    </script>


    وقد أرفقت هنا مثال لإستخدام المجموعة System.RegularExpressions
    (لاحظ أن هذا الإطار يعمل مع الإصدار الخامس PHP5)

    وأنا في أنتظار اي إستفسار في هذا الموضوع

    أنتظروني قريبا مع الدرس القادم والمجموعة System.DateTime , والله الموفق
     
    ملف مرفق(ملفات)
     
    ملف مرفق  WebApplication3.rar (5.83كيلو )

    كلمات مفتاحية  :

    تعليقات الزوار ()