عبارات منظم (RegEx)
عبارت منظم (Regular Expression) یک الگوی جستجو است. با آن متن ها را پیدا یا جایگزین می کنیم. تمرکز ما «عبارات منظم در PHP» است. خیلی شبیه فیلترهای جستجوی پیشرفته در بازی هاست.
سینتکس پایه RegEx در PHP
در PHP، الگو یک رشته با جداکننده، الگو، و مُد است. جداکننده معمولاً / است. مُد i یعنی بزرگ وکوچک مهم نیست.
$exp = "/w3schools/i";
نکته: اگر در الگو / دارید، می توانید از ~ یا # برای جداکننده استفاده کنید.
preg_match: آیا الگو پیدا شد؟
تابع preg_match() وجود الگو را چک می کند. اگر پیدا شد 1 می دهد.
$str = "Visit W3Schools";
$pattern = "/w3schools/i";
echo preg_match($pattern, $str);
preg_match_all: چند بار تکرار شد؟
تابع preg_match_all() تعداد کل وقوع ها را برمی گرداند.
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
echo preg_match_all($pattern, $str);
preg_replace: جایگزینی متن با الگو
تابع preg_replace() همه تطابق ها را با متن جدید عوض می کند.
$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo preg_replace($pattern, "W3Schools", $str);
گروه بندی: تکرارِ بخش الگو
با پرانتز، یک بخش را گروه می کنیم. سپس آن را تکرار می دهیم.
$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo preg_match($pattern, $str);
نکته: کاراکترهای خاص را با \ فرار بده. مثال: $pattern = '/\?+/'.
گام های تمرینی ساده
- یک الگو با /pattern/i بساز.
- با
preg_matchوجودش را چک کن. - با
preg_replaceآن را جایگزین کن.
مطالب مرتبط داخل سایت
برای کار با فرم ها به فرم ها در PHP برو. برای توابع رشته ای هم رشته ها در PHP مفید است.
جمع بندی سریع
- RegEx الگوی جستجوی متن است.
preg_matchوجود را برمی گرداند.preg_match_allتعداد را می دهد.preg_replaceمتن را جایگزین می کند.- پرانتز برای گروه بندی است.