متن 🔒 در مرورگر اجرا می‌شود — داده‌ای ارسال نمی‌شود

جست‌وجو و جایگزینی با Regex

متن را با یک عبارت باقاعده بازنویسی کنید و پیش از اجرای آن روی فایل‌های واقعی، نتیجه را ببینید.

/ /
متن آزمایشی
تطبیق‌ها و گروه‌ها
تطبیق‌ها اینجا نمایش داده می‌شوند...

جست‌وجو و جایگزینی آنلاین با Regex

جست‌وجو و جایگزینی با عبارت باقاعده یکی از سریع‌ترین راه‌های پاک‌سازی متن است، و یکی از ساده‌ترین راه‌ها برای خراب کردن هزار سطر در یک لحظه. این صفحه آزمایشگر Regex را با یک نمونه آماده باز می‌کند: الگوی واژهٔ تکراری از کتابخانهٔ الگوها، یعنی \b(\w+)\s+\1\b، و جایگزین $1. جمله نمونه زیر نتیجه جایگزینی برمی‌گردد و همه کلمه‌های تکراری‌اش حذف شده‌اند.

نمونه چطور کار می‌کند

(\w+) یک کلمه را می‌گیرد، \s+ با فاصله یا شکست سطر بعد از آن تطبیق می‌کند و \1 دوباره همان کلمه را می‌خواهد. \b در دو سر الگو نمی‌گذارد درون کلمه‌های بلندتر تطبیق رخ دهد، پس «the theory» دست‌نخورده می‌ماند. با پرچم i، «This this» هم تکرار حساب می‌شود و $1 املای اول را نگه می‌دارد: «This this is a a typo» به «This is a typo» تبدیل می‌شود.

نشانه‌های جایگزینی

نشانهچه چیزی درج می‌کند
$1، $2متن همان گروه شماره‌دار
$<name>متن یک گروه نام‌دار، مثل (?<year>\d{4})
$&کل تطبیق
$`همه چیز پیش از تطبیق
$'همه چیز پس از تطبیق
$$یک علامت دلار واقعی

پیش از جایگزینی انبوه، تست کنید

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

کلمه‌ها در خط‌های دیگر

در JavaScript، \w و \b فقط حروف A تا Z، ارقام و زیرخط را می‌شناسند؛ بنابراین نمونه، «café» تکراری یا یک کلمه فارسی تکراری را نمی‌گیرد. با پرچم‌های giu، الگوی (?<![\p{L}\p{N}_])([\p{L}\p{N}_]+)\s+\1(?![\p{L}\p{N}_]) همین کار را در هر الفبایی انجام می‌دهد.

صفحه‌های مرتبط

تست Regex جاوااسکریپت پرچم‌ها و موتور پشت این صفحه را توضیح می‌دهد، و Regex آدرس URL الگوی خوبی برای جایگزینی است؛ مثلاً برای تبدیل لینک‌های خام به Markdown با [$&]($&). ابزار کامل با هر ۱۵ الگوی آماده، آزمایشگر Regex است.

آموزش‌های مرتبط