بنام خداوند متعال♥️
اَفَض هستم با اموزش
عبارات با قائده در php👌
#قسمت_یازدهم_ریجکس_نویسی
خب ما کلی متاکارکتر یاد گرفتیم و الان نیازمون شده باید یک ریجکس بنویسیم برای ایپی ببینیم ایپی هست یا نه
ایپی باید یک تا چهار رقم باشه و ۳ یا ۴ بخش ipv4
1.1.1
111.111.111.1111
11.111.111
اینا همش ایپی درستی هستند
حالا بریم سراغ ریجکسش😌
اول از همه اینو میتونیم نقطه به معنای هرچیزی هست اگر بخوایم داخل عبارت استفاده کنیم باید پشتش بک اسلش بزاریم
گفتیماگر بخوایم بگیم عبارت چند رقم باشه از {n,m} استفاده میکنیم حداقل n و حداکثر m
حالا بیاید ریجکسش بنویسیم
'/(\d{1,3})/'
تا اینجا میشه:
() یک واحد به ما خروجی بده ایپی نیاز داریم
\d فقط اعداد باشه
{1,3} حداقل یک و حداکثر 3 رقم باشه
بریم کاملش کنیم
'/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/'
اما خب ریجکس بالا یه مشکلی داره
222.11.11.4
فقط ایپی های ۴ بخشی رو قبول میکنه و اما ایپی ممکنه ۳ بخش باشه راه حل چیه؟
افرین گفته بودیم متاکارکتر ? من به عبارت پشتش میتونه نباشه
پس ما قسمت
\.\d{1,3}
رو میزارم داخل یک واحد () و جلوش ? میزاریم
'/(\d{1,3}\.\d{1,3}\.\d{1,3}(\.\d{1,3})?)/'
ریجکس بالارو بخوایم مفهومش بگیم میشه:
() یک واحد کلی به ما بده
\d از جنس عدد باشه
{1,3} یک تا سه رقم باشه
\. نقطه باشه
و اینو سه بار نوشتیم آخری رو چهارمی رو داخل () گذاشتیم پشتش علامت سوال یعنی اینکه میتونه نباشه
حالا بیاید خروجی بگیریم:
preg_match('/(\d{1,4}\.\d{1,4}\.\d{1,4}(\.\d{1,4})?)/','
سلام ایپی سرور شما:
112.12.222 میباشد بدرود',$m);
var_dump($m);
خروجی:
Result:
array(2) {
[0]=>
string(10) "112.12.222"
[1]=>
string(10) "112.12.222"
}
حالا با یک متن داریم ممکنه توش ۲۱ ایپی باشه و همشو بخوایم بگیریم چیکار کنیم؟ درسته از تابع preg_match_all استفاده میکنیم
کد:
$string = 'ایپی یک 22.21.22
ایپی دو 122.221.2
ایپی شماره زیاد 32.443.2.22 و کلی ایپی دیکه';
preg_match_all('/(\d{1,4}\.\d{1,4}\.\d{1,4}(\.\d{1,4})?)/',$string,$m);
var_dump($m);
خروجی:
array(3) {
[0]=>
array(3) {
[0]=>
string(8) "22.21.22"
[1]=>
string(9) "122.221.2"
[2]=>
string(11) "32.443.2.22"
}
[1]=>
array(3) {
[0]=>
string(8) "22.21.22"
[1]=>
string(9) "122.221.2"
[2]=>
string(11) "32.443.2.22"
}
[2]=>
array(3) {
[0]=>
string(0) ""
[1]=>
string(0) ""
[2]=>
string(3) ".22"
}
}
خب ریجکس بعدی شما بگید چی باشه: @mrafaz
ممنون ازین که فوروارد میکنید برای دوستاتون❤️
@phpchallenge
اَفَض هستم با اموزش
عبارات با قائده در php👌
#قسمت_یازدهم_ریجکس_نویسی
خب ما کلی متاکارکتر یاد گرفتیم و الان نیازمون شده باید یک ریجکس بنویسیم برای ایپی ببینیم ایپی هست یا نه
ایپی باید یک تا چهار رقم باشه و ۳ یا ۴ بخش ipv4
1.1.1
111.111.111.1111
11.111.111
اینا همش ایپی درستی هستند
حالا بریم سراغ ریجکسش😌
اول از همه اینو میتونیم نقطه به معنای هرچیزی هست اگر بخوایم داخل عبارت استفاده کنیم باید پشتش بک اسلش بزاریم
گفتیماگر بخوایم بگیم عبارت چند رقم باشه از {n,m} استفاده میکنیم حداقل n و حداکثر m
حالا بیاید ریجکسش بنویسیم
'/(\d{1,3})/'
تا اینجا میشه:
() یک واحد به ما خروجی بده ایپی نیاز داریم
\d فقط اعداد باشه
{1,3} حداقل یک و حداکثر 3 رقم باشه
بریم کاملش کنیم
'/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/'
اما خب ریجکس بالا یه مشکلی داره
222.11.11.4
فقط ایپی های ۴ بخشی رو قبول میکنه و اما ایپی ممکنه ۳ بخش باشه راه حل چیه؟
افرین گفته بودیم متاکارکتر ? من به عبارت پشتش میتونه نباشه
پس ما قسمت
\.\d{1,3}
رو میزارم داخل یک واحد () و جلوش ? میزاریم
'/(\d{1,3}\.\d{1,3}\.\d{1,3}(\.\d{1,3})?)/'
ریجکس بالارو بخوایم مفهومش بگیم میشه:
() یک واحد کلی به ما بده
\d از جنس عدد باشه
{1,3} یک تا سه رقم باشه
\. نقطه باشه
و اینو سه بار نوشتیم آخری رو چهارمی رو داخل () گذاشتیم پشتش علامت سوال یعنی اینکه میتونه نباشه
حالا بیاید خروجی بگیریم:
preg_match('/(\d{1,4}\.\d{1,4}\.\d{1,4}(\.\d{1,4})?)/','
سلام ایپی سرور شما:
112.12.222 میباشد بدرود',$m);
var_dump($m);
خروجی:
Result:
array(2) {
[0]=>
string(10) "112.12.222"
[1]=>
string(10) "112.12.222"
}
حالا با یک متن داریم ممکنه توش ۲۱ ایپی باشه و همشو بخوایم بگیریم چیکار کنیم؟ درسته از تابع preg_match_all استفاده میکنیم
کد:
$string = 'ایپی یک 22.21.22
ایپی دو 122.221.2
ایپی شماره زیاد 32.443.2.22 و کلی ایپی دیکه';
preg_match_all('/(\d{1,4}\.\d{1,4}\.\d{1,4}(\.\d{1,4})?)/',$string,$m);
var_dump($m);
خروجی:
array(3) {
[0]=>
array(3) {
[0]=>
string(8) "22.21.22"
[1]=>
string(9) "122.221.2"
[2]=>
string(11) "32.443.2.22"
}
[1]=>
array(3) {
[0]=>
string(8) "22.21.22"
[1]=>
string(9) "122.221.2"
[2]=>
string(11) "32.443.2.22"
}
[2]=>
array(3) {
[0]=>
string(0) ""
[1]=>
string(0) ""
[2]=>
string(3) ".22"
}
}
خب ریجکس بعدی شما بگید چی باشه: @mrafaz
ممنون ازین که فوروارد میکنید برای دوستاتون❤️
@phpchallenge