Regex/Regular Expressions چیست ؟


Regular Expressions با استفاده از دستورات خود می تواند یک الگو جهت تطابق با یک متن یا String بسازد. بدین صورت شما می توانید تطابق یک متن در یک فایل متنی را با استفاده از الگوی خود بررسی نمائید.

regex-example

در ابتدا باید فرامین پایه را بشناسید و فرا بگیرید.

  1. کاراکتر “.” : یعنی هر کاراکتری بجز انتهای خط
  2. کاراکتر “*” : یعنی به تعداد 0 یا بیشتر کاراکتر
  3. کاراکتر “+” : یعنی به تعداد 1 یا بیشتر کاراکتر
  4. کاراکتر”؟” : یعنی مهم نیست در ادامه کاراکتری وجود داشته باشد یا نه
  5. کاراکتر “d/” : یعنی اگر عدد بود
  6. کاراکتر “w/” : یعنی اگر حروف, عدد یا کاراکتر “_” بود
  7. کاراکتر “$” : یعنی پایان رشته ی خط
  8. کاراکتر”^” : یعنی آغاز رشته ی خط
  9. عبارت [XYZ] : یعنی یک تک کاراکتر از کلاس کاراکترها
  10. عبارت [XYZ]+ : یعنی یک یا بیشتر کاراکتر از کلاس کاراکترها
  11. عبارت [^a-z] : یعنی اگر کاراکتر ها حروف کوچک نباشند. لازم به ذکر است “^” داخل یک کلاس کاراکتر به معنی NOT می باشد.

سخت بود ؟

به طور مثال:

 /^\d+$/

این عبارت String هایی را می یابد که شامل 1 یا بیشتر عدد باشند.

مثال دوم:

\b\w{4}\b

این عبارت تمامی کلمات 4 حرفی را می یابد. مانند asdf – sadf – maha و …

می توانیم از ریجکس در کد PHP نیز استفاده کنیم.

<?php
 
$userName = isset($_POST['username']?mysql_real_escape_string($_POST['username']):'');
if($userName){
	$pattern = '/^[a-z0-9_-]{3,16}$/'
	$output = preg_match($pattern,$userName);
	if($output){
		echo 'Username complies the pattern!';
	}
}
 
?>

فرض کنید قصد دارید نام کاربر را در سایت با الگویی تطابق دهید که تنها عبارات بین 3 الی 16 کاراکتر را قبول کند. با توجه به کد بالا، دستور preg_match این مورد را برایتان انجام می دهد.

حروف فارسی با عبارت

 [\u0600-\u06FF]

و اعداد فارسی با عبارت

 [\u0660-\u0669\u06F0-\u06F9]

مشخص می گردند.

میلاد خوشدل

در حوزه‌ی امنیت وب و شبکه فعالیت می کند، عاشق پارکور است و مدیریت دیتاسنتر، امن سازی شبکه های مخابراتی و کابلی و برنامه نویسی وب و موبایل از تجارب کاری او می باشد. او در حال حاضر بنیانگذار ریجاکس است.

نظر خود را بنویسید

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

یک × سه =


تگ های html مجاز به استفاده می باشند: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

ارسال یک پیام