|
|
|||
|
||||
| |||||
| الصفحات | الطمعفي بعض الأحيان تكون هنالك أكثر من عبارة في النص تطابق القالب الذي وضعته، على سبيل المثال أنظر إلى النص التالي :
فماذا لو استخدمنا القالب التالي للبحث عن وسوم HTML في النص :
في هذه الحالات يقوم برنامج التعبيرات القياسية بالبحث عن أطول تعبير يطابق القالب في القطعة النصية المعطاة، حاول أن تعرف ما هي أطول قطعة نصية تطابق القالب السابق في المثال السابق؟ هل عرفتها؟ أنظر الآن إلى القطعة النصية مرة أخرى :
ما رأيك الآن؟ كما تلاحظ فإن أطول قطعة نصية تطابق العبارة السابقة هي العبارة كلها، لم يقوم البرنامج بإزالة وسوم HTML فقط بل سيزيل العبارة من أولها إلى أخرى. يسمى ميل البرنامج إلى أخذ القطعة النصية من بين القطع النصية المطابقة بصفة الطمع، وكل ما عليك لحل هذه المشكلة هو وضع علامة الاستفهام بعد تعبير التكرار ( علامة النجمة في مثالنا السابق ) وستحل المشكلة ويقوم البرنامج بأخذ أول قطعة نصية مطابقة ( بدلا من أطول واحدة )، وفي مثالنا السابق تصبح العبارة كالتالي :
الطريقة السابقة لمنع سلوك الطمع موجودة فقط في محرك التعبيرات القياسية التابع للغة Perl، وأما المواصفات العامة للتعبيرات القياسية فهي تنص على أن المحرك يجب أن يكون طماعا ولكنها في المقابل لا توفر طريقة لمنع هذا السلوك، على العموم يستطيع مبرمجي لغة PHP أيضا الاستفاده من ميزة منع الطمع عن طريق استخدام دوال التعبيرات القياسية المتوافقة مع Perl والتي تبدأ بالكلمة pereg.
| ||||