عبارات باقاعده RegEx در PHP
عبارت باقاعده (Regular Expression یا به اختصار RegEx) رشتهای از کاراکترهاست که یک جستوجو در رشتهها را مشخص میکند.
کارکتر
\d : فقط یک رقم کارکتر عددی
\D: فقط یک رقم کارکتر غیر عددی
\w : فقط یک کارکتر کلمه ای
\W: فقط یک کارکتر غیر کلمه ای
\s: فقط یک کارکتر فاصله یا تب یا خط جدید
\S: فقط یک کارکتر غیر فضای خالی
تعداد
+ : یک یا بیشتر
{۲} : دقیقا ۲ بار
{۳,۵} : بین ۳ تا ۵ بار
{۴,} : چهار بار یا بیشتر
*: صفر بار یا بیشتر
? : صفر یا یک بار
منطق
| : OR(یا)
( … ) : ی گروه گیرا . میتواند داخل آن یک شرط باشد . مثلا H(i|ello)
\۱ : محتویات گروه گیرای ۱
\۲ : محتویات گروه گیرای ۲
(?:…) : گروه ناگیرا یا گروهی که محتویات آن به صورت جداگانه قابل دریافت نیست
کلاس کارکتر
[…] : یکی از کارکترهای داخل براکت
[a-z] : یکی از کارکتر های الفبا از aتا z
[*a-z] : یکی از کارکتر های الفبا غیر از aتا z
. : هر کارکتری جز خط جدید
\. : کارکتر نقطه
\ : برای کارکتر های خاص استفاده میشود . مثل \}\{
^: شروع رشته
$ : پایان رشته
lookaround
شرطهایی را روی رشته اعمال میکنند تا مطمئن شویم قبل یا بعد رشته، یک رشتهی خاص آمده است یا نیامده است.
positive lookahead : بعد از بخش موردنظر در عبارت باقاعده، یک رشتهی مشخص آمده است
positive lookbehind : قبل از بخش موردنظر در عبارت باقاعده، یک رشتهی مشخص آمده است
(?<= |^)ahmad(?= |$)
negative lookahead : بعد از بخش موردنظر در عبارت باقاعده، یک رشتهی مشخص نیامده است.
negative lookbehind : قبل از بخش موردنظر در عبارت باقاعده، یک رشتهی مشخص نیامده است
(?<!a)ahmad(?!b)
توابع
برای تست کردن الگوهای خود هم میتوانید از سایت https://regex101.com استفاده کنید.