مبدل رایگان

Regex تستر

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

//g
پرچم ها:

درباره این ابزار

عبارات منظم یک زبان دامنه خاص برای تطبیق الگوها در متن هستند. آنها از سال 1968 بخشی از محاسبات بوده اند و اکنون در هر زبان برنامه نویسی مدرن، ویرایشگر متن و ابزار جستجوی خط فرمان تعبیه شده اند. نحو مختصر اما مستعد خطا است: تغییرات کوچک رفتار تطابقی متفاوتی را ایجاد می کند و عبارات پیچیده به سرعت غیرقابل خواندن می شوند. آزمایش‌کننده‌ای که همزمان با ویرایش الگو، منطبق‌ها را به‌صورت هم‌زمان نشان می‌دهد، مؤثرترین راه برای توسعه و تأیید regex است.

این تستر در مرورگر شما با استفاده از موتور regex جاوا اسکریپت اجرا می شود (همان چیزی که برنامه شما در صورت اجرا در مرورگر از آن استفاده می کند). الگوها و متن آزمایشی به‌صورت واکنشی به‌روزرسانی می‌شوند: هر تغییری که در هر یک از این دو مورد، مسابقه را دوباره اجرا می‌کند. گروه‌های منطبق برجسته می‌شوند، گروه‌های گرفته شده فهرست می‌شوند و پرچم‌ها (بدون حساسیت، چند خطی، سراسری) برای آزمایش در معرض دید قرار می‌گیرند.

نحو Regex به طور ماهرانه ای بین موتورها متفاوت است. جاوا اسکریپت از مشخصات ECMAScript پیروی می کند. Python، PCRE (استفاده شده توسط PHP و بسیاری دیگر)، جاوا، و Go هر کدام گویش های خود را با ویژگی های همپوشانی دارند اما نه یکسان. الگوهای توسعه یافته در اینجا از نحو ECMAScript استفاده می کنند. قابلیت حمل متقابل موتور مستلزم بررسی اسناد هر هدف است.

چرا از تستر Regex استفاده کنید؟

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

الگوها از مستندسازی نیز بهره می برند. نمایش regex در کنار ورودی که باید مطابقت داشته باشد و ورودی که نباید مطابقت داشته باشد، قصد را واضح می کند. نگهبانان آینده (از جمله خود شما در شش ماه آینده) از موارد آزمایشی مستند بیشتر قدردانی می کنند تا از تک لاین های هوشمند.

نحوه استفاده

یک الگو را تایپ کنید، ورودی تست را تایپ کنید، موارد منطبق را به صورت زنده برجسته کنید.

  1. الگوی خود را وارد کنید: الگوی regex را در قسمت الگو تایپ کنید. هر دو فرم regex تحت اللفظی (/الگو/پرچم) و فقط الگو کار می کنند. پرچم ها را می توان از طریق ورودی پرچم ها تنظیم کرد.
  2. ورودی تست را اضافه کنید: متن نمونه‌ای را بچسبانید که الگو باید مطابقت داشته باشد (و در حالت ایده‌آل همچنین متنی که نباید مطابقت داشته باشد). تستر الگو را در مقابل ورودی اجرا می کند و موارد را برجسته می کند.
  3. پرچم ها را تنظیم کنید: پرچم‌های رایج: g (جهانی، یافتن همه موارد منطبق)، i (بدون حساسیت)، m (چند خطی، ^ و $ شروع/پایان خط تطبیق)، s (dotall، . مطابق با خطوط جدید)، u (یونیکد).
  4. نتایج را بررسی کنید: هر مسابقه در ورودی هایلایت شده است. گروه‌های ضبط در فهرستی با شاخص و مقدار گروه ظاهر می‌شوند. تستر همچنین تعداد موارد منطبق و هر گونه خطای تلفیقی را در الگو نشان می دهد.

موارد استفاده رایج

جزئیات فنی

Regex جاوا اسکریپت از مشخصات ECMAScript پیروی می کند. ویژگی‌های اصلی: کلاس‌های کاراکتر ([abc]، [^abc])، کمی‌کننده‌ها (*، +، ?، {n،m})، تناوب (|)، گروه‌بندی ((...))، گروه‌های ضبط و غیرقابل جذب، نگاه به جلو و نگاه به عقب (موتورهای مدرن)، ارجاع به عقب، گروه‌های نام‌گذاری شده، گریزهای ویژگی یونیکد از flags استاندارد (با مجموعه استاندارد u escapes).

تفاوت های مهم با PCRE و Python: پشتیبانی lookbehind اخیراً در جاوا اسکریپت (2018+) است. گروه های نامگذاری شده از نحو (?<name>...) استفاده می کنند. برخی از فرارهای یونیکد برای درست کار کردن به پرچم u نیاز دارند. الگوهای در نظر گرفته شده برای استفاده بین زبانی باید با اسناد هر هدف بررسی شوند.

عملکرد: موتورهای regex مبتنی بر بک‌ترکینگ (بیشتر از جمله جاوا اسکریپت) می‌توانند در الگوهای آسیب‌شناختی خاصی عقبگرد فاجعه‌باری داشته باشند. آزمایش‌هایی که تستر را آویزان می‌کنند، نشانه‌ای از این است که الگوی نیاز به ساده‌سازی دارد - معمولاً با اجتناب از کمی‌سازهای تودرتو و تناوب مبهم.

بهترین شیوه ها

سوالات متداول

این ابزار کدام طعم regex را پشتیبانی می کند؟
It uses JavaScript's built-in RegExp engine, which supports standard syntax including lookaheads, lookbehinds (in modern browsers), named capture groups, and Unicode property escapes.
آیا می توانم جایگزین های regex را آزمایش کنم؟
بله. برای وارد کردن یک الگوی جایگزین، به حالت جایگزینی بروید. می توانید از $1، $2، و غیره برای ضبط ارجاعات گروهی و $<name> برای گروه های نامگذاری شده استفاده کنید.
چرا regex من در اینجا با پایتون/PHP متفاوت است؟
زبان های برنامه نویسی مختلف موتورهای regex کمی متفاوت دارند. جاوا اسکریپت از کمیت سازهای مالکیتی یا برخی از ویژگی های خاص PCRE پشتیبانی نمی کند. نحو اصلی (کلاس های کاراکتر، کمیت کننده ها، گروه ها) در بین زبان ها یکسان است.
آیا این ابزار الگوهای regex من را ذخیره می کند؟
خیر. هیچ چیز ذخیره یا منتقل نمی شود. این ابزار به طور کامل در مرورگر شما اجرا می شود. می توانید با کپی کردن رشته regex، الگوها را نشانه گذاری یا به اشتراک بگذارید.
چگونه یک شخصیت خاص تحت اللفظی را مطابقت دهم؟
با یک اسلش از آن فرار کنید. برای مطابقت با یک نقطه تحت اللفظی: \. برای مطابقت با اسلش تحت اللفظی: \\. در داخل کلاس های شخصیت [...]، اکثر شخصیت های خاص معنای خود را از دست می دهند.
آیا تستر روی سرور اجرا می شود؟
خیر. کامپایل و تطبیق الگو در مرورگر شما با استفاده از شی RegExp بومی انجام می شود.
آیا می توانم الگوهای موتورهای غیر جاوا اسکریپت را آزمایش کنم؟
بیشتر. برای الگوهای ساده، موتورهای اصلی موافق هستند. برای ویژگی‌های پیشرفته (نگاه به پشت، گروه‌های اتمی، کمی‌سازهای مالکیت، فرار از ویژگی‌های یونیکد)، مستندات موتور هدف را تأیید کنید.
آیا ورودی بسیار بزرگی را مدیریت می کند؟
تا چند مگابایت به راحتی کار می کند. ورودی‌های بزرگ‌تر ممکن است مرورگر را کند کرده یا به حالت تعلیق درآورند، مخصوصاً با الگوهایی که مستعد عقبگرد هستند.