pedia-learning

ورود

گذرواژه‌تان را فراموش کرده‌اید؟

ثبت نام

ثبت نام
انجمن عمومی گسترش فناوری آگو

اگر اولین بار از انجمن بازدید می کنید برای دسترسی کامل به انجمن عضو شوید بعد عضویت قادر به ارسال مطلب و شرکت در بحث خواهید داشت

ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
عبارت با قاعده (قسمت اول)
01-29-2014, 07:17 PM
ارسال: #1
عبارت با قاعده (قسمت اول)
در علم رایانه، عبارت باقاعده (regular expressions)، که تحت عنوان regex یا regexp نیز نام می‌برند به معنی تطبیق رشته در متن است، که از قبیل نویسه‌های خاص و یا الگوهایی از نویسه‌ها می‌باشد.

برای مثال:

دنباله‌ای از نویسه‌های «car» در هر متن، از قبیل «car»، «cartoon» یا «bicarbonate»
یک نویسهٔ «$» که پس از آن یک یا چند رقم بیاید و پس از آن به صورت اختیاری یک ممیز بیاید و پس از ممیز دقیقاً دو رقم اضافه قرار داشته باشد (مانند ‎«$۱۰»‎ یا ‎«$۲۴۵٫۹۹»‎)


تو PHP دو نوع متفاوت از عبارت باقاعده وجود داره:

POSIX Extended
Perl Compatible

که بیشتر ار دومی استفاده میشه (به دلیل سرعت و تکامل بیشتر از POSIX) و من هم قصد دارم همینو آموزش بدم.

یکی از موارد استفاده از عبارت باقاعده اعتبارسنجی اطلاعاتی است که معمولاً از طریق فرم ها دریافت میشن.

مثلاً برای اعتبارسنجی یه نام کاربری که باید شامل اعداد و حروف بین ۶ تا ۱۰ کاراکتر باشه میشه از این الگو استفاده کرد:

کد php:
/^[a-z0-9]{6,10}$/ 

البته به این صورت:

کد php:
<?php
if( preg_match('/^[a-z0-9]{6,10}$/''myuser'))
{
echo 
'Matched! <br>';
} else {
echo 
'Not matched! <br>';
}
?>

و توضیح الگویی که استفاده شد:

هر الگویی که نوشته میشه باید بین دو علامت “/” قرار بگیره.
کاراکتر “^”: این کاراکتر به معنی آغار خط هست. برای مثال اگه بخوایم ببینیم یه نویسه با a شروع میشه یا نه اونوقت به این الگو نیاز داریم

کد php:
/^a

کاراکتر “$”: این کاراکتر به معنی پایان خط هست. دقیقاً عکس “^” عمل میکنه.
کاراکتر “|”: این کاراکتر به معنی “یا” هست. مثلا برای بررسی مطابقت یا عدم مطابقت یه نویسه با یکی از کلمات red یا bed این الگو رو میخوایم:

کد php:
/^bed|red$/ 

پرانتز “()”: برای ایجاد زیر الگوها در یک الگو ازش استفاده میکنیم. مثلا اگه بخوایم نویسه ای با یکی از کلمات bed یا red مطابقت کنه به الگوی زیر نیاز داریم:

کد php:
/^(r|b)ed$/ 

براکت “[]“: اینا وقتی کاربرد داره که بخوایم یه گروه خاص از کاراکترها رو با یه نویسه مقایسه کنیم. مثلا واسه اینکه ببینیم یه نویسه از a و b و h تشکیل شده یا نه این الگو رو مینویسیم:

کد php:
/^[abh]+$/ 

کاراکتر “+” و “*”: “+” یکی یا بیشتر و “*” هیچی یا بیشتر. مثلا برای بررسی اینکه یه نویسه از نوع عددیه یا نه این الگو لازمه:

کد php:
/^[۰-۹]+$/ 

”{n,m}”: یعنی هر الگویی که قبلش قرار داره باید بین n تا m بار تکرار شده باشه.
و تابع preg_match که به ترتیب الگو و نویسه رو دریافت میکنه و اگر نویسه با الگو مطابقت کنه true رو برمی گردونه.
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 3 مهمان


Persian Translation by MyBBIran.com - Ver: 4.1
Powered by MyBB, © 2002-2024 MyBB Group.
Theme designed by Marvel (Sidebar created by Yaldaram - Yaldaram.com)
Theme Translation by Mt Edition