استارت‌آپ و کارآفرینی

عبارات با قاعده یا regex

regex

«عبارات با قاعده»… اگر برنامه‌نویس باشید یا با متون بزرگ سر و کار داشته باشید، احتمالا با این عبارات آشنا باشید. طبیعتا ما در متن‌ها از یک سری کاراکتر برای تشکیل کلمات و جملات استفاده می‌کنیم. حالا فرض کنید که می‌خواهیم از یک متن بزرگ کلمه(ها)یی را استخراج کنیم و یا اینکه ممکن است عباراتی را دریافت کنیم که از محتوای آن بی‌خبریم و نیاز داریم که از این عباراتِ هرچند کوتاه، نکاتی را دریابیم. در این مواقع «عبارات با قاعده» به کمک ما می‌آیند.

در ادامه با ذکر چند نمونه بیشتر با «عبارات با قاعده» آشنا خواهیم شد. (تصاویر با کمک نرم افزار regexper تولید شده است. این نرم‌افزار را در مقاله‌ای با عنوان« برای regex فلوچارت بکشید» معرفی کرده‌ام.)

تشخیص فایل‌هایی با پسوند “css”

[a-zA-Z0-9\.\-]+\.css

به همین ترتیب می‌توانید انواع فایل‌های دیگر را بیابید.

file

امکان وارد کردن حروف خاص

علاوه بر ارائه این الگو، یک نکته‌ی کاربردی را هم بیان خواهم کرد. الگوی تشخیص حروف الفبای فارسی در فیلدهای متنی:

[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+

کاربرد الگوی فوق را در کد زیر امتحان کنید:

<input type="text" onkeypress="if(!this.value.match(/[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+/)) this.value=this.value.replace(/\D/g,'')"
 onkeyup   ="if(!this.value.match(/[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+/)) this.value=this.value.replace(/\D/g,'')">

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

 

یافتن پست الکترونیکی

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b

email

 

یافتن کد هگز رنگ

#[A-Fa-f0-9]{6}

hexcolor

 

الگوهای معرفی‌شده اگرچه خیلی پیچیده نیستند اما می‌توانند آغازی برای یادگیری بهتر و دقیق‌تر «عبارات با قاعده» باشند.

 

برای یادگیری برخی نکات در regex می‌توانید به این وبسایت مراجعه کنید.

5 نظرات
  1. محسن می گوید

    خدا قوت مهندس.
    ممنون بابت مطلب.

  2. علی می گوید

    سلام
    عالیه
    بازم مطلب بذارید. ممنون.

  3. mois می گوید

    جالب بود و واقع گرایانه

  4. احمد می گوید

    مرسی خیلی خوب بود

  5. جواد می گوید

    از این سایت هم میتونید برای استفاده سریع از Regex استفاده کنید.

    http://allregex.com/

ارسال یک پاسخ

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