آموزش برنامه نویسی
خانه مقالات PHP مثال‌هایی از پیش‌بینی و پس‌بینی عبارات باقاعده در PHP

مثال‌هایی از پیش‌بینی و پس‌بینی عبارات باقاعده در PHP

نویسنده روح الله حسینی

پس‌بینی‌ها (lookahead) و پیش‌بینی‌ها (lookbehind) در عبارات با قاعده (RegEx) الگویی را مشخص می‌کنند که پس از یا پیش از الگوی بخصوص دیگری قرار گرفته یا نگرفته باشد.  

 

مثال‌های پس‌بینی منفی

برای جست‌وجو و مشخص کردن عبارت “hello” به شرط نبودن عبارت “world” پس از آن، از (?! world) استفاده می‌کنیم.

 

نمونه 1

پس از “hello” کلمه “world” وجود دارد بنابراین پس‌بینی منفی شکست می‌خورد.

خروجی:

 

نمونه 2

پس از “hello” کلمه “world” وجود ندارد بنابراین پس‌بینی منفی نتیجه بخش خواهد بود.

خروجی:

 

مثال‌های پس‌بینی مثبت

برای جایگزین کردن عبارت “hello” (با NEWVAL) به شرط وجود داشتن کلمه “world” پس از آن، از (?= world) استفاده می‌کنیم.

 

نمونه 1

خروجی:

 

نمونه 2

خروجی:

 

مثال‌های پیش‌بینی منفی

برای مشخص کردن کلمه “hello” به شرط نبودن کاراکتر عددی و حروف انگلیسی قبل از آن، از (?<![a-z0-9]) برای پیش‌بینی منفی استفاده می‌کنیم.

 

نمونه 1

هیچ کاراکتری قبل از کلمه “hello” وجود ندارد.

خروجی:

 

نمونه 2

وجود کاراکتر انگلیسی “a” بلافاصله پیش از “hello”.

خروجی:

 

مثال‌های پیش‌بینی مثبت

برای جایگزین کردن عبارت “hello” (با NEWVAL) به شرط وجود داشتن کلمه “world” پیش از آن، از (?<=hello ) برای پیش‌بینی مثبت استفاده می‌کنیم.

 

نمونه 1

خروجی:

 

نمونه 2

خروجی:

 

نکته‌ها:

      • کاراکتر i بعد از / برای نادیده گرفتن بزرگ یا کوچک بودن حروف است.
      • عبارت مربوط به پس‌بینی و پیش‌بینی، بخشی از نتیجه جست‌وجو در متغیر $matches (در فانکشن preg match) نخواهد بود.
      • عبارت مربوط به پس‌بینی و پیش‌بینی توسط فانکشن preg replace جایگزین نخواهد شد.

منبع
Php look ahead and look behind regex examples – infoheap.com

کامنت بگذارید