tigtools

تستر Regex

یک الگو و متنی وارد کنید تا هر تطابق همراه با موقعیت و گروه‌های ضبط‌ش برجسته دیده شود. از موتور regex جاوااسکریپت مرورگر شما استفاده می‌کند.

در مرورگر شما اجرا می‌شود بدون ثبت‌نام

پرچم‌ها

برای گروه‌های شماره‌دار از $1، $2 …، برای گروه‌های نام‌دار از $<name>، برای کل تطابق از $& و برای نشانهٔ دلار از $$ استفاده کنید.

نحوه استفاده

  1. یک عبارت باقاعده در فیلد الگو وارد کنید، بدون اسلش‌های اطراف آن.
  2. پرچم‌های موردنیاز را فعال کنید. پرچم g (سراسری) به‌جای فقط اولین مورد، همه تطابق‌ها را پیدا می‌کند.
  3. متنی را برای جستجو جای‌گذاری کنید. تطابق‌ها برجسته می‌شوند و هر کدام با شاخص و گروه‌های ضبط فهرست می‌شوند.
  4. در صورت نیاز، یک جایگزین مانند $2-$1 وارد کنید تا پیش‌نمایش نتیجه String.replace را ببینید.

نحوه کار

این آزمایشگر الگوی شما را با شیء داخلی RegExp مرورگر اجرا می‌کند؛ بنابراین نتیجه‌ها دقیقاً همان چیزی است که کد جاوااسکریپت (ECMAScript) در همان مرورگر تولید می‌کند. زبان‌های دیگر از گونه‌های مختلف regex استفاده می‌کنند: PCRE (PHP)، ماژول re پایتون، Java و .NET قابلیت‌هایی دارند که جاوااسکریپت ندارد؛ مانند کمّی‌سازهای مالکانه (a++)، گروه‌های اتمی ((?>…))، اصلاح‌گرهای درخط مانند (?i) و بازگشت. همچنین در جزئیاتی مانند لنگرهای \A و \Z با هم تفاوت دارند. پیش از تکیه بر الگو در یک زبان، آن را در همان زبان آزمایش کنید. Lookbehind ((?<=…))، گروه‌های نام‌گذاری‌شده ((?<name>…)) و دنباله‌های گریز ویژگی یونیکد (\p{L} با پرچم u) در همه مرورگرهای فعلی کار می‌کنند.

بدون پرچم g یا y فقط نخستین تطابق پیدا می‌شود، مانند RegExp.exec. تطابق‌های با طول صفر، برای نمونه ^ یا \b، فهرست می‌شوند اما برجسته نمی‌شوند؛ پس از هر یک، جست‌وجو یک نویسه جلو می‌رود (با پرچم u، یک کدپوینت)، همان‌طور که String.matchAll انجام می‌دهد. گروه‌های ضبط با شماره و در صورت تعریف، با نام نمایش داده می‌شوند؛ گروهی که در تطابق شرکت نکرده است به‌عنوان بدون مقدار علامت‌گذاری می‌شود که با تطابق خالی تفاوت دارد.

برخی الگوها، مانند (a+)+$ روی یک خط طولانی بدون تطابق، برای شکست خوردن زمان نمایی نیاز دارند (بازگشت فاجعه‌بار). برای کاهش این خطر، تطابق لحظه‌ای پس از توقف تایپ شما آغاز می‌شود؛ فقط 100,000 نویسه نخست متن جست‌وجو می‌شود و حداکثر 1,000 تطابق جمع‌آوری می‌شود. یک الگوی بیمارگونه همچنان ممکن است برای مدتی برگه را از کار بیندازد؛ اگر چنین شد، الگو را ساده‌تر یا متن را کوتاه‌تر کنید.

نمونه‌ها

استخراج تاریخ‌ها

الگوی (\d{4})-(\d{2})-(\d{2}) با پرچم g روی «Due 2026-03-15, paid 2026-04-02» دو تطابق پیدا می‌کند. گروه ۱ سال است؛ جای‌گذاری $3.$2.$1 متن را به «Due 15.03.2026, paid 02.04.2026» تبدیل می‌کند.

گروه‌های نام‌گذاری‌شده برای کد خواناتر

الگوی (?<key>\w+)=(?<value>[^&]*) روی رشته کوئری a=1&b=two کلید و مقدار هر زوج را فهرست می‌کند؛ همان چیزی که match.groups.key و match.groups.value در جاوااسکریپت برمی‌گردانند.

جست‌وجوی غیرحساس به بزرگی و کوچکی حروف در میان خطوط

الگوی ^error:.* با پرچم‌های g، i و m هر خطی از لاگ را که با Error:، ERROR: یا error: شروع می‌شود مطابقت می‌دهد؛ زیرا m باعث می‌شود ^ با آغاز هر خط مطابقت کند.

پرسش‌های متداول

آیا regex من در Python، PHP یا Java یکسان کار می‌کند؟

نه لزوماً. این ابزار از موتور جاوااسکریپت استفاده می‌کند. نحو پایه مشترک است، اما امکاناتی مانند کمیت‌سنج‌های مالکانه، گروه‌های اتمی، پرچم‌های درون‌خطی مثل (?i) و برخی دنباله‌های escape فقط در پیاده‌سازی‌های دیگر وجود دارند و برخی رفتار متفاوتی دارند. همیشه در زبان مقصد تست کنید.

چرا فقط یک تطابق پیدا می‌شود؟

پرچم g (سراسری) خاموش است. بدون آن، جاوااسکریپت فقط اولین تطابق را برمی‌گرداند. برای یافتن همه، g را تیک بزنید.

آیا باید اسلش‌ها را دور الگو بگذارم؟

خیر. فقط الگو را وارد کنید؛ برای مثال \d+ به‌جای /\d+/g، و پرچم‌ها را با چک‌باکس‌ها انتخاب کنید. فرم literal جاوااسکریپت برای کپی در کد، زیر نتایج نشان داده می‌شود.

چرا صفحه با الگوی من کند شد؟

کمیت‌سنج‌های تودرتو مانند (a+)+ یا (.*)* می‌توانند موتور را مجبور کنند وقتی هیچ تطابقی وجود ندارد، تعداد نمایی از مسیرها را امتحان کند. الگو را دقیق‌تر کنید؛ برای نمونه .* را با [^,]* جایگزین کنید یا از لنگرها استفاده کنید. این تستر برای کاهش اثر، متن را به ۱۰۰٬۰۰۰ نویسه محدود می‌کند.

حریم خصوصی

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