Regex (Regular Expression) یا «عبارت منظم»، یکی از قدرتمندترین ابزارهای برنامهنویسی برای کار با متن است. اگرچه سینتکس آن در ابتدا ترسناک به نظر میرسد، اما یادگیری آن باعث میشود که بتوانید کارهایی انجام دهید که در غیر این صورت ساعتها طول میکشید.
Regex چیست؟
Regex یک زبان برای توصیف الگوهای متنی است. با آن میتوانید بررسی کنید آیا یک رشته شامل الگوی خاصی است یا خیر، بخشهایی از آن را استخراج کنید یا جایگزین نمایید.
کاراکترهای مهم در Regex
.: هر کاراکتری به جز خط جدید\d: هر رقم (0-9)\w: هر حرف، رقم یا زیرخط\s: هر فاصله، Tab یا خط جدید^: ابتدای رشته$: انتهای رشته
تکرارها (Quantifiers)
*: صفر یا بیشتر (مثلاًa*یعنی صفر یا چند تا a)+: یک یا بیشتر?: صفر یا یک (اختیاری){n}: دقیقاً n بار{n,m}: بین n تا m بار
مثالهای کاربردی
اعتبارسنجی ایمیل: ^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$
اعتبارسنجی شماره موبایل ایران: ^09\d{9}$
استخراج لینکها: https?://[^\s]+
ابزار تست Regex
برای تست و دیباگ Regexها، میتوانید از ابزار تست Regex ما استفاده کنید. این ابزار با استفاده از Web Worker اجرا میشود تا از قفل شدن صفحه در برابر الگوهای خطرناک (ReDoS) جلوگیری کند.
نکات مهم برای استفاده امن
- از الگوهای بسیار پیچیده پرهیز کنید.
- برای ورودیهای کاربر، محدودیت طول بگذارید.
- در سرور، از timeout برای پردازش Regex استفاده کنید.
جمعبندی
Regex یک مهارت ضروری برای هر برنامهنویس است. با یادگیری اصول اولیه و استفاده از ابزارهای تست، میتوانید بسیاری از کارهای پیچیده متنی را در چند ثانیه انجام دهید.