ورودیهای ابزار
بگویید چه متنی را میخواهید پیدا یا اعتبارسنجی کنید (شمارهی موبایل ایران، کد ملی، کد پستی، ایمیل، حروف فارسی…) تا الگوی Regex، توضیح بخشبهبخش و نمونهی کد برای زبان برنامهنویسیتان بگیرید.
ساخت Regex با هوش مصنوعی چه دردسری را کم میکند؟
ساخت Regex با هوش مصنوعی برای کسی است که میداند چه الگویی میخواهد، ولی حوصلهی ده بار آزمونوخطا با کروشه و بکاسلش را ندارد. عبارت باقاعده (Regular Expression) زبان کوچکی برای پیدا کردن و اعتبارسنجی متن است: شمارهی موبایل، ایمیل، کد پستی، تاریخ یا هر الگوی دیگری. این ابزار درخواست فارسی شما را میگیرد و چهار چیز میدهد: الگو در بلوک کد، توضیح بخشبهبخش، جدول نمونههایی که میپذیرد و رد میکند، و یک قطعهکد کوتاه برای زبان برنامهنویسیتان.
برنامهنویسها برای اعتبارسنجی فرم، تحلیلگرهایی که متن یا لاگ را پاکسازی میکنند و کسانی که در ویرایشگر به جستوجو و جایگزینی پیشرفته نیاز دارند، کاربران اصلیاند.
فرم را چطور پر کنیم؟
- چه چیزی را پیدا یا بررسی کنید؟ قاعده را با حالتهای مرزی بگویید: «شمارهی موبایل ایرانی با
+98یا صفر اول یا بدون آن، با رقم فارسی یا انگلیسی، بدون فاصله». بگویید الگو باید کل رشته را بسنجد یا داخل متن بلند بگردد. - نمونهها (اختیاری ولی بسیار مفید): چند نمونه که باید پذیرفته شوند و چند نمونه که نباید. با نمونههای واقعی، الگو دقیقتر و جدول آزمون معنادارتر میشود.
- زبان برنامهنویسی: JavaScript، Python، PHP، Java، Go یا C#. موتورهای Regex با هم فرق دارند؛ مثلاً موتور Go از lookbehind پشتیبانی نمیکند، و الگو برای همان موتور نوشته میشود.
نمونهی ورودی
| خانه | نمونه |
|---|---|
| چه چیزی را پیدا یا بررسی کنید؟ | شمارهی موبایل ایرانی، با +98 یا صفر اول یا بدون آن، با رقم فارسی یا انگلیسی |
| نمونهها | بپذیرد: 09121234567 و +989121234567 و ۰۹۱۲۱۲۳۴۵۶۷؛ رد کند: 0912123456 و 08121234567 |
| زبان برنامهنویسی | JavaScript |
پاسخ الگویی میدهد که پیشوند اختیاری را میپذیرد و بعد «۹» و نُه رقم دیگر را با رقمهای انگلیسی یا فارسی میخواهد. هر بخش توضیح داده میشود، از جمله اینکه چرا ^ و $ لازماند. بعد جدول نمونههای پذیرفته و ردشده و یک قطعهکد JavaScript با test() میآید. اگر بخشی از قاعده با Regex تنها بررسیشدنی نباشد، ابزار آن را میگوید.
نکتههایی برای الگوی مطمئن
- Regex همهچیز نیست: رقم کنترل کد ملی را Regex نمیسنجد؛ ابزار این را میگوید و کد مکمل میدهد.
- رقم فارسی و عربی را فراموش نکنید: کاربران ایرانی گاهی با صفحهکلید فارسی یا عربی تایپ میکنند؛ ابزار به رقمهای فارسی (۰ تا ۹)، عربی (٠ تا ٩) و نیمفاصله توجه دارد.
- جدول نمونه را تست کنید: نمونههای پذیرفته و ردشده را در تستهای واحد پروژهتان هم بگذارید.
- الگوی پیچیده را بشکنید: اگر الگو خیلی طولانی شد، پاسخ در یک گفتگو باز میشود؛ بخواهید آن را با کامنت یا در چند مرحلهی سادهتر بنویسد.
برای ابزارها و مدلهای دیگر کدنویسی، برنامهنویسی با هوش مصنوعی را ببینید. اگر الگو در کدی خطا میدهد، کد را در توضیح کد و رفع باگ بچسبانید، و برای جستوجوی الگو داخل دیتابیس، ساخت کوئری SQL را.
سوالات متداول
Regex چیست؟
عبارت باقاعده یا Regex الگویی متنی است که توصیف میکند یک رشته باید چه شکلی داشته باشد؛ مثلاً «با ۰۹ شروع شود و ۹ رقم دیگر داشته باشد». تقریباً همهی زبانهای برنامهنویسی و ویرایشگرهای کد از آن برای جستوجو، اعتبارسنجی و جایگزینی متن پشتیبانی میکنند.
الگو در همهی زبانها یکسان کار میکند؟
نه همیشه. پایهی الگوها مشترک است، اما امکاناتی مثل lookbehind، گروههای نامدار و کلاسهای یونیکد در موتورها فرق دارند. برای همین زبان را در فرم انتخاب میکنید و الگو برای همان موتور نوشته میشود.
برای اعتبارسنجی فرم کافی است؟
Regex شکل ورودی را میسنجد، نه درستیاش را. شمارهای که شکلش درست است ممکن است وجود نداشته باشد و کد ملی با رقم کنترل نادرست هم ممکن است از الگو بگذرد. اعتبارسنجی را همیشه سمت سرور هم تکرار کنید.