Hossein
Hossein
خواندن ۲ دقیقه·۲ سال پیش

عبارات با قاعده (RegEx) چیه و چه کاربردی داره؟

سلام من اومدم با یه پست خفن دیگه??


اگر تا حالا وارد حوزه برنامه نویسی شده باشید به احتمال زیاد با بحث RegEx مواجه شدید و می‌دونید چه خبره اما ما تو این پست جذاب قراره با هم دیگه به بررسی ریجکس بپردازیم.

عبارت RegEx مخفف Regular Expressions یعنی عبارات با قاعده هست. ما با یکی از پرکاربرد ترین بخش‌های برنامه‌نویسی مواجهیم.

Regular Expressions
Regular Expressions


خب اجازه بدید با یه مثال ساده شروع کنم.

وارد سایت دیجیکالا بشید و شماره تلفن ۱۰ رقمی وارد کنید. می‌بینید که با ارور مواجه می‌شید. حالا برید و یه شماره ۱۱ رقمی عجیب غریب وارد کنید. باز هم با ارور مواجه می‌شید! این دفعه شماره ۱۱ رقمی بزنید که با ۰۹ شروع بشه ولی رقم سوم و چهارمش وجود نداشته باشه مثلا از ۰۹۱۲ یا ۰۹۰۲ یا ۰۹۳۴ که وجود دارن استفاده نکنید. باز هم ارور داد!

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

خب حالا بریم ببینیم اصلا این ریجکس چیکارا میکنه. ریجکس یا همون عبارات با قاعده یسری قاعده برای یک عبارت تعریف میکنند و اگر از اون قاعده خارج باشه ارور میدن یا false برمیگردونن. همین! تموم شد و رفت ولی همینی که گفتیم جلوی خیلی از پردازش‌های الکی رو میگیره. بیاید فرض کنیم ریجکس وجود نداشت. شما یک شماره ۱۰ رقمی تو سایت دیجی کالا وارد میکردید. سایت دیجی کالا به پنل پیامکش ریکوئست میداد ، پنل پیامک یک پیامک به این شماره ارسال میکرد، و منتظر وارد کردن کد از سمت شما می‌شد حالا فکر کنید این اتفاق به دفعات مختلف می‌افتاد و با یه دیداس مواجه می‌شدیم! اینجاست که میگن فلفل نبین چه ریزه بشکن ببین چه تیزه.


اما ریجکس در زبان‌های برنامه نویسی متفاوت تفاوت چندانی نداره و در زبان‌های متفاوت با لایبرری متفاوتی به کار میره اما کاراکترهاش همه جا یکین!

از سایت وی اسکولز میتونید این کاراکترها و نحوه کار با ریجکس در پایتون رو مشاهده کنید.

https://www.w3schools.com/python/python_regex.asp

راستی اگر خواستید با کاراکترهای ریجکس کار کنید و حوصله کامپیوتر روشن کردن و کار با وی اس کد رو نداشتید خیلی راحت میتونید از سایت زیر ریجکس تمرین کنید:)

https://regex101.com/


ممنون میشم نظرات خودتون رو با ما در میون بذارید??

برنامه نویسیregex
شاید از این پست‌ها خوشتان بیاید