نکات کلیدی
- 01تستکننده از موتور RegExp بومی JavaScript مرورگر استفاده میکند، بنابراین نتایج دقیقاً با آنچه Node.js یا مرورگر مدرن در تولید تولید میکند مطابقت دارد.
- 02تمام شش پرچم JavaScript (g، i، m، s، y، u) به طور جداگانه در دسترس هستند.
- 03قالبهای جایگزینی از $1، $2، $&، و $$ برای پیشنمایش جایگزینی قدرتمند پشتیبانی میکنند.
- 04هیچ چیزی به سرور ارسال نمیشود — الگوها و رشتههای آزمایشی به طور کامل در مرورگر شما باقی میمانند.
چرا یک تستکننده Regex اختصاصی از IDE شما بهتر است
عبارات منظم قدرتمند اما نامآشنای خوانندگی دشواری دارند. حتی توسعهدهندگان تجربیکار به مفاجئههای جدی برخورد میکنند: یک نقطهای که خطوط جدید را بلع میکند، یک کمّیت حریصانه که بیشازحد بلع میکند، یا یک گروه ضبط که یک نقطه جلو است. یک تستکننده اختصاصی کد محیطی را حذف میکند تا بتوانید فقط بر روی الگو و رشته ورودی یکجا تکرار کنید.
تستکننده regex از Handytool الگوها را با موتور RegExp بومی مرورگر ECMAScript ارزیابی میکند، که بدان معنی است که لایه ترجمه و عدم تطابق طعم وجود ندارد. اگر تستکننده میگوید تطابق دارد، کد JavaScript شما نیز خواهد داشت. پرچمها را تغییر دهید، نمونه رشته تازهای را بچسبانید، و نتایج فوری بهروزرسانی میشوند — بدون نیاز به دکمه اجرا.
نحوه آزمایش الگوی Regex
کل گردش کار در کمتر از یک دقیقه انجام میشود.
- 01
الگوی خود را بچسبانید یا تایپ کنید
بیان منظم خود را در فیلد الگو وارد کنید. خطوط اطراف را حذف کنید — پرچمها به طور جداگانه تنظیم میشوند.
- 02
پرچمهای خود را تنظیم کنید
g، i، m، s، y، و u را به طور جداگانه تغییر دهید. پرچم جهانی تقریباً همیشه برای موارد استفاده چندتطابق لازم است.
- 03
رشته آزمایش خود را بچسبانید
متنی را اضافه کنید که میخواهید بر روی آن تطابق کنید. هر فشار کلید الگو را دوباره اجرا میکند و تطابقها را در ورودی برجسته میکند.
- 04
گروههای ضبط را بررسی کنید
فهرست تطابق را بپیمایید تا موقعیت هر تطابق و مقدار هر گروه ضبط شمارهشده را ببینید.
- 05
جایگزینی را پیشنمایش کنید
قالب جایگزینی را با استفاده از $1، $2 یا $& وارد کنید تا خروجی جایگزینشده را به صورت زنده ببینید — عالی برای تأیید فراخوانی String.replace() قبل از نوشتن آن.
لیست کنترل سریع اشکالزدایی Regex
قبل از فرضکردن اشتباه، از این مسیر بگذرید:
- 01آیا پرچم جهانی فعال است اگر بیشاز یک تطابق انتظار دارید؟
- 02آیا نقطهها باید خطوط جدید را تطابق دهند؟ اگر چنین است، پرچم s را فعال کنید.
- 03آیا از گروههای شمارهشده ($1، $2) یا گروههای نامگذاریشده (\k<name>) در جایگزینی استفاده میکنید؟
- 04آیا الگو از فرارهای Unicode (\p{…}) استفاده میکند؟ پرچم u را مستلزم میکند.
- 05آیا پرچم چسبناک (y) برای هر تطابق lastIndex تازه نیاز دارد؟
خصوصیطراحی شده
تستکننده regex صفر درخواست شبکه هنگام تایپ ایجاد میکند. الگو و رشته آزمایش شما به طور کامل توسط موتور JavaScript مرورگر پردازش میشود — آنها هرگز سرویدهنده را لمس نمیکنند. این برای چسباندن خطوط ورودی اختصاصی، بارهای API داخلی یا رشتههای حساس هنگام اشکالزدایی ایمن است.
زیرا هیچ بکاند درگیر نیست، همچنین محدودیت نرخ، حساب مورد نیاز، و هیچ محدودیت اندازه چسباندگی غیر از آنچه برگه مرورگر شما میتواند دستیابی کند وجود ندارد. بیشتر الگوها و رشتههای روزمره در کمتر از میلیثانیه ارزیابی میشود.
پرسشهای متداول تستکننده Regex
کدام طعم regex این تستکننده استفاده میکند؟
JavaScript (ECMAScript). الگوها توسط موتور RegExp بومی مرورگر ارزیابی میشوند، دقیقاً با رفتار Node.js و مرورگر مدرن تطابق میدهند. Lookbehinds، گروههای نامگذاریشده، و فرارهای مالکیت Unicode (\p{…} با پرچم u) همگی پشتیبانی میشوند.
آیا الگو یا رشته آزمایش من صفحه را ترک میکند؟
نه. همه چیز به صورت محلی در مرورگر شما اجرا میشود — هیچ درخواست شبکه هنگام تایپ الگو، تغییر پرچمها یا پیشنمایش جایگزینی انجام نمیشود.
چگونه از گروههای ضبط در فیلد جایگزینی استفاده کنم؟
از $1، $2، … برای گروههای شمارهشده، $& برای کل تطابق، و $$ برای درج علامت دلار تحتاللفظی استفاده کنید. پیشنمایش هنگام تغییر هر دو الگو یا قالب به صورت زنده بهروزرسانی میشود.
آیا این برای الگوهای Python یا PCRE کار میکند؟
موتور JavaScript است، بنابراین بیشتر الگوهای پایه یکسان رفتار میکنند، اما گروههای نامگذاریشده سبک Python (?P<name>…) و کمّیات اختیاری پشتیبانی نمیشوند. معادلهای JS را استفاده کنید — (?<name>…) برای گروههای نامگذاریشده.
چرا regex من در سراسر خطوط شکست تطابق نمیدهد؟
پرچم s (dot-all) را فعال کنید، یا . را با [\s\S] جایگزین کنید. بدون آن، نقطه با هر کاراکتر به جز خط جدید تطابق میکند.