برای طرح سوال و دسترسی به آموزش ها  کانال ما در تلگرام بپویندید  

آموزش ریجکس بخش اول:

ریجکس یا عبارات با قاعده

مفهوم عبارات با قاعده

اگر بخواهیم یک تعریف مختصر از عبارات با قاعده یا Regular Expressionsو به اختصار Regex)) داشته باشیم روش ها و قواعدی هستند که برای استخراج یا بررسی وجود قسمت یا توالی خاصی از یک مقدار (عددی، متنی ، الگو و… به کار می روند(، در واقع این قواعد بر مبنای قوانین خاصی تنظیم میشوند و بخش بخصوصی از یک متن یا عدد و… را با توجه به تنظیمات ما استخراج می کنند که در محاسبات دقیق و پیچیده بسیار کاربرد خواهد داشت.نکته: استفاده از عبارات با قاعده معمولا در چارچوب های مشخصی که توانایی پردازش آنها را داشته باشند انجام می شود، به طور مثال در توابع خاص، دستورات htaccess، قسمت جستجوی برنامه هایی که از این قواعد پشتیبانی می کنند و…؛ به عبارت دیگر صرف قرار دادن مستقیم این قواعد در کدنویسی نتیجه خاصی ندارد. عبارات منظم (Regular Expressions) وسیله ای را برای برنامه نویسان فراهم می کنند که بتوان به کمک آنها عبارات ، کلمه ها و الگوها ی مورد نظر را در یک رشته متنی (String) پیدا کرد.
اصل Regular Expressions بر روی نظریه ماشینها و نظریه زبانهای صوری تکیه دارد .
Regular Expressions محدود به یک زبان خاص نیست و اکثر زبانهای برنامه نویسی این امکان را درون خود قرار داده اند نظیر #javascript ,Perl, Ruby, TCL, Delphi, php, c java, و …. عبارات منظم توسط یک پردازنده که درون زبان برنامه نویسی وجود دارد تفسیر (interpret) می شوند.عبارات منظم استفاده های زیادی در برنامه های کاربردی مختلف دارد . توسط بسیاری از ویرایشگرهای متنی (Text Editor)برای انجام اعمال مختلف بر روی رشته ها مورد استفاده قرار می گیرد

عبارات با قاعده چگونه نوشته می شوند؟

پس از آشنایی با مفهوم Regular Expressions، سوالی که به ذهن می رسد این است که عبارات با قاعده چگونه نوشته می شوند؟ در پاسخ باید گفت که دستورات در این روش از طریق توالی علامت ها، کلمات، حروف یا کاراکترهای خاصی (مانند [] () + \ *? | , w \W\ 0-9 a-z و…) که هر کدام مفهوم ویژه ای دارند، تعریف می شوند، در واقع از کنار هم قرار گرفتن این علامت ها، دستور ویژه ای شکل گرفته و قسمت خاصی از رشته مورد نظر استخراج یا بررسی می شود، چند مثال کاربردی:

. :یک کاراکتر بجز \n
+ :حداقل یک تکرار عبارت یا کاراکتر قبل از خود است
* : هر تعداد تکرار یا بدون تکرار عبارت یا کاراکتر قبل از خود است
? : اگر پشت عبارتی قرار بگیرد یعنی اینکه ۰ یا ۱ تکرار عبارت یا کاراکتر قبل از خود است
^ :ایا متن با الگوی ما شروع میشود اگر داخل [] قرار گیرد به معنی بجز میباشد
$ :ایا متن با الگوی ما پایان می یابد یا پایان یک عبارت
i :ریجکس به حروف بزرگ و کوچک حساس است برای از بین بردن این حساسیت از i استفاده میکنیم
مثال:
“/ABC/i”
\d :یک عدد
\D:یک کاراکتر غیر عددی
\w :یک کاراکتر یا کلمه
\W :یک کاراکتر غیر حرفی
\s :یک اسپیس
\S :یک کاراکتر عیر از اسپیس
\b :ابتدا یا انتهای کلمه
\B :غیر از ابتدا یا انتهای متن
\n :خط جدید
\r :انتهای خط
[] :تعریف الگو برای یک کاراکتر
() :تعریف الگو و جداسازی الگوها
{} :تعداد تکرار
{۳}:۳ بار تکرار
{۱,۵}:حداقل ۱ و حداکثر ۵ بار تکرار
{,۸}:حداکثر ۸ بار تکرار
:حداقل ۴ بار تکرار{۴,}
– :تعریف محدوده الگو
\ :غیر فعال کردن کاراکترهای معنی دار در الگو
| :انتخاب یا در الگو


انتشار

در

توسط

برچسب‌ها:

نظرات

3 پاسخ به “آموزش ریجکس بخش اول:”
  1. ‌A1Gard

    عالی مبین جان
    یکی از روش های خوب برای جستجو و پیدا کردن الگو هست ولی در بین برنامه نویس های ایرانی غریبه اس.
    میشه گفت برنامه نویس قبل از regex با بعد از اون تفاوت داره
    ساختن این الگو توسط ابداع کننده همیشه برای به شدن جالب بوده و هست علی رقم سرعت بسیار خوبی که داره دقت و انعطاف بی نظیری داره

  2. night owl

    ممنون بابت مطلب
    یه لینک مفید
    https://regexone.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *