|
|
|||
|
||||
| |||||
| الصفحات | التكراريستخدم التكرار لتحديد عدد المرات التي من الممكن أن يوجد بها الحرف السابق لتعبير التكرار، على سبيل المثال أنظر إلى العبارة التالية :
كما تلاحظ يوضع التكرار بين قوسين معقوفين ( } ) و ( } ) ويكتب بداخله العدد الأدنى من التكرارات ثم العدد الأقصى منها، فإذا استخدمنا تلك العبارة القياسية أو القالب للبحث في نص ما فإنها ستجد كل من العبارات التالية إذا كانت هذه العبارات موجودة في النص الذي نبحث بداخله :
السر في ذلك أن كل من العبارتين السابقتين يطابق القالب الأصلي الذي وضعناه، حيث أن القالب الأصلي كان يقول ( العبارة Ara ثم الحرف a مكرر مرة واحدة أو مرتين ثم العبارة bBuilder. يمكننا أيضا أن نبحث عن نصوص يتكرر فيها حرف ما مرة واحدة على الأقل عن طريق ترك مكان الرقم الثاني والذي يحدد العدد الأقصى من التكرارات فارغا كالتالي مثلا :
القالب السابق يطابق كل من العبارات Hi و Hii و Hiiiii و Hiiiiiiiiiii .. الخ. أما إذا تركنا الحقل الأول فارغا فهذا يعني بأنه لا يوجد حد أدنى من التكرارات أو أنه يمكن أن لا يكون الحرف موجودا ( وجوده لا يعتبر ضرورة لانطباق القالب على العبارة )، فمثلا التعبير التالي :
يطابق كل من العبارات Hi و Hii و Hiii و H أيضا، ولكنها لا تطابق العبارة Hiiiiiiii لأن الحرف i هنا تكرر أكثر من ثلاثة مرات. حسنا ماذا لو تركنا كل من الحقلين فارغا؟ هكذا مثلا :
العبارة السابقة تطابق كل من H و Hi و Hii و Hiiiiiiiiii الخ، ولأن تعبير التكرار السابق يستخدم بكثرة فإننا نستطيع استبداله بعلامة النجمة كما فعلنا في التعبير القياسي الذي أخذناه في البداية كمثال، فتصبح العبارة السابقة كالتالي :
بقي هنالك طريقة واحدة لاستخدام التكرار وهي كتابة رقم واحد فقط ودون الفاصلة، وهذه الطريقة تتطلب أن يتكرر الحرف لعدد محدد وثابت من المرات، فالتعبير التالي :
تطابق عبارة واحدة فقط هي Hiii حيث يتكرر الحرف i ثلاثة مرات فقط. في الأمثلة السابقة عرفنا كيف نقوم بمطابقة عبارة يتكرر فيها حرف ما، فماذا لو أردما مطابقة عبارة تحتوي على عبارة أخرى بداخلها تكرر عدة مرات؟ كل ما علينا فعله هو إحاطة العبارة بقوسين وبعدها نكتب عبارة التكرار، على سبيل المثال :
التعبير القياسي السابق يطابق كل من HiHiHi و HiHiHiHi و HiHiHiHiHi، حيث تتكرر العبارة Hi بأكملها ثلاثة إلى خمسة مرات. إضافة إلى الحروف والأرقام التي يمكننا البحث عنها يمكننا استخدام رمزين خاصين يسميان برموز المرساة Anchors، هذا الرمزان هما ( ^ ) و ( $ )، يعبر كل رمز من رموز المرساة عن أحد طرفي العبارة، فالرمز ( ^ ) يعبر عن بداية العبارة النصية التي نبحث بداخلها عن التعبير المطابق، والرمز ( $ ) يعبر عن نهاية هذه العبارة، فإذا أردنا أن نرى ما إذا كانت عبارة ما تبدأ بالحرف d على سبيل المثال، فإننا نستخدم التعبير القياسية التالي :
حسنا، ماذا لو أردنا أن نبحث عن جميع النصوص التي تنتهي بالحرف J؟ سنحتاج حينها إلى التعبير القياسي التالي :
التعبير القياسي السابق يعني الحرف j ثم نهاية العبارة النصية، أي العبارة النصية التي تنتهي بالحرف j.
| ||||