[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)
<?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";?>
<script language="php">// إستخدام مكتبة System.RegularExpressionsinclude_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>
<script language="php">// إستخدام مكتبة System.RegularExpressionsinclude_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>