PDA

View Full Version : آموزش: آموزش پترن ها با نمونه



funpatogh
چهارشنبه 16 تیر 1389, 00:53 صبح
سلام
چون خودم واقعا به پترن ها نیاز داشتم و چند مورد اینجا یاد گرفتم و توی فروم هم زیاد سوال میشه گفتم بهتره که هر کسی چند تا مثال اینجا بزاره تا بلکه دیگه هر سوالی توی ذهن بچه ها بود به اینجا معرفیش کنیم و هی سوال های تکراری نپرسند


[abc]
حتما یکی از این حروف باید توی رشته باشه


[^/]
توی رشته هر چیزی میتونه باشه به جز کاراکتر /


world+
یعنی بعد از کلمه worl باید حتما یک d داشته باشد


world*
یعنی بعد از کلمه worl باید 0 یا بیشتر کاراکتر d باشد



world?
یعنی باید بعد از کلمه worl صفر یا یک کاراکتر d باشد



a{2}
یعنی 2 تا کاراتر a باید داشته باشد



a{2,3}
یعنی حداقل 2 تا و ماکزیمم 3 تا a باید داشته باشد



^world
حتما با کلمه world باید شروع بوشد


world$
حتما به کلمه world باید ختم بشود


w.rld
یعنی بین w و r حتما یک کاراکتر باید باشد


[a-z]
یعنی فقط حروف کوچک مجاز است ولا غیر


[a-zA-Z]
هر حروف کوچک و هم حروف بزرگ مجاز است


earth|world
یعنی تنها یکی از این 2 کلمه مجاز است


[a-zA-Z0-9_-]

یعنی فقط حروف کوچک و حروف بزرگ و اعداد و 2 تا کاراکتر _و- میتونه باشه

rapidpich
چهارشنبه 16 تیر 1389, 14:53 عصر
کار با پترنها نیاز به تجربه داره
هشکی با اولین حرکت نمیتونه یک پترن بزرگ رو بنویسه و باز بالاخره میان همینجا
چیزی که فکر کنم بدرد بخوره لیست کردن پترنهای مورد نیاز همهست مثل عکس، لینک، ایمیل، url،...

funpatogh
چهارشنبه 16 تیر 1389, 20:19 عصر
دقیقا من هم موافقم با شما
خودم اگه وقت بشه
همشون رو اینجا لیست میکنم و بچه ها هم کمک کنند اگه چیزی رو یادم رفت

صابر طهماسبی
چهارشنبه 16 تیر 1389, 20:24 عصر
ایده جالبی است بنده هم تا بتونم کمک می کنم
البته یه پیشنهاد دارم دستورات مربوطه را شرح دهیم همزمان pattern ها را قرار دهیم

صابر طهماسبی
چهارشنبه 16 تیر 1389, 20:29 عصر
1) چک کردن نام دامنه


$
url = "http://barnamenevis.org/";
if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) {
echo "Your url is ok.";
} else {
echo "Wrong url.";
}

2) بیرون کشیدن عکس های یه کد html




$images=array();
preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media);
unset($data);
$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]);
foreach($data as $url)
{
$info = pathinfo($url);
if (isset($info['extension']))
{
if (($info['extension'] == 'jpg') ||
($info['extension'] == 'jpeg') ||
($info['extension'] == 'gif') ||
($info['extension'] == 'png'))
array_push($images, $url);
}
}

funpatogh
چهارشنبه 16 تیر 1389, 20:44 عصر
3) چک کردن آدرس ایمیل


<?php
$email="funpatogh.comgmail.com";
if(preg_match('/([0-9a-z\.-_]+)@([0-9a-z\.-_]+)\.([0-9a-z]+)/',$email))
echo "IS Valid";
else
echo "Not Valid";


?>

----------------------


<?php
$pattern = "/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/";
$email = "jim@demo.com";
if (preg_match($pattern,$email))
echo "Match";
else
echo "Not match";

?>

funpatogh
چهارشنبه 16 تیر 1389, 20:51 عصر
4) معتبر بودن نام کاربری که باید 4 تا 20 کاراکتر هم باشد


<?php

$pattern = '/^[a-zA-Z0-9_.-]{4,20}$/';

$username = "this.is.a-demo_-";

if (preg_match($pattern,$username)) echo "Match";

else echo "Not match";
?>

mojdeh9000
یک شنبه 09 شهریور 1393, 14:09 عصر
4) معتبر بودن نام کاربری که باید 4 تا 20 کاراکتر هم باشد


<?php

$pattern = '/^[a-zA-Z0-9_.-]{4,20}$/';

$username = "this.is.a-demo_-";

if (preg_match($pattern,$username)) echo "Match";

else echo "Not match";
?>


سلام....
اگه نام کاربری بتونه همه کاراکترها رو داشته باشه و فقط بخوام شرط {4و20} را براش بذارم چه الگویی باید بنویسم(با توجه به اینکه وقتی الگویی نباشه همه انواع کاراکترها رو میتونه داشته باشه)؟؟؟؟؟؟؟؟؟

ABZiko
یک شنبه 09 شهریور 1393, 16:05 عصر
فکر کنم اینطوری بشه : ^{4,20}

mojdeh9000
یک شنبه 09 شهریور 1393, 18:12 عصر
فکر کنم اینطوری بشه : ^{4,20}

سلام
نه اینطوری نمیشه امتحانش کردم.!!!چکارکنم؟؟؟؟راه دیگه ای نیس؟؟؟

iman_82
یک شنبه 09 شهریور 1393, 19:39 عصر
کاراکتر "." (نقطه) میشه هر کاراکتری
فکر کنم این بشه

/^.{4,20}$/

mojdeh9000
یک شنبه 09 شهریور 1393, 20:11 عصر
کاراکتر "." (نقطه) میشه هر کاراکتری
فکر کنم این بشه

/^.{4,20}$/

خیلی ممنون باهمین درست شد......