رگولار اکسپرژن ، آشنایی

saalek110

Well-Known Member
پست 61: کاربرد رگولار اکسپرژن در php

preg_replace


PHP:
$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo preg_replace($pattern, "W3Schools", $str);


نتیجه اجرا ببینید:

PHP:
Visit W3Schools!



کد بالا ، هم جایگزین کرده و هم چاپ کرده!
 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
$m = '|([\w\d]*)\s?(https?://([\d\w\.-]+\.[\w\.]{2,6})[^\s\]\[\<\>]*/?)|i';
$r = '$1 <a href="$2">$3</a>';

$status_text = preg_replace($m,$r,$status_text);
echo $status_text;

 

saalek110

Well-Known Member
PHP:
$url = "https://example.com/products.php?category=electronics";
$pattern = "/^(https:\/\/.+\/)([^?]+)(.*)$/";
$replacement = '<a href="$1$2">$2</a>';
$result = preg_replace($pattern, $replacement, $url);
echo $result;

PHP:
<a href="https://example.com/products.php">products.php</a>?category=electronics

فعلا تست نکردم.

 

saalek110

Well-Known Member
PHP:
$string = "http://www.foo.bar/";

PHP:
"#^\w+://(www\.)?\w+\.\w+#i"

پترن بالا را در سایت زیر پیدا کردم:



جالبی اش اینه که قالب را خیلی جامع تعریف کرده ، مثلا www. را اختیاری گرفته. اون علامت سوال بعدش اختیاری اش می کند.

یا مثلا +w یعنی تعدادی حروف. بعلاوه سمت راست دبلیو است.

و این:

PHP:
\w+\.\w+

یعنی تعدادی حروف و بعدش یک نقطه و باز بعدش تعدادی حروف. منظورش همان foo.bar است.

حتی به جای http هم +w گذاشته ، یعنی تعدادی حروف.
 

جدیدترین ارسال ها

بالا