پرش به محتوای اصلی

جستجو و جایگزینی متن رایگان

متن را با تطابق ساده یا regex جستجو و جایگزین کنید، با شمارش تطابق زنده و پیش‌نمایش برجسته‌شده. از غیر حساس به بزرگ/کوچک، کل کلمه و backreference‌های گروه ضبط regex پشتیبانی می‌کند.

پس از بارگذاری آفلاین کار می‌کند
پاک‌سازی سریع
یک عبارت جستجو وارد کنید

💡 در حالت عبارت منظم، از گروه‌های دستگیری در جستجو مانند (\d{4})-(\d{2}) استفاده کنید و در جایگزینی با $1، $2 به آن‌ها ارجاع دهید — برای قالب‌بندی مجدد انبوه تاریخ‌ها، نام‌ها یا شناسه‌ها عالی است.

کاربردهای رایج

  • جستجو و جایگزین کردن متن انبوههر بار رخ داد یک کلمه یا عبارت را در یک بلوک متن به یکباره جایگزین کنید.
  • جستجو و جایگزینی Regexاز عبارات منظم با گروه های ضبط استفاده کنید تا متن را انبوه بندی کنید.
  • جستجو و جایگزین در کدنام متغیرها را سریع تغییر دهید یا الگوها را در یک قطعه کد بازنویسی کنید.
  • پاکسازی داده های نامرتبنویسه های اضافی، جداکننده ها و قالب بندی را در داده های الصاق شده حذف یا عادی کنید.
  • جایگزین کردن کلمات در حین نوشتنیک کلمه تکرار شونده را تعویض کنید یا نام شخصیت را در تمام پیش نویس تغییر دهید.

نحوه کار

یافتن و جایگزینی کاملاً در مرورگر شما با استفاده از موتور داخلی RegExp جاوااسکریپت اجرا می‌شود — بدون کتابخانه، بدون سرور، بدون آپلود. متن به‌صورت محلی لحظه تایپ‌کردن پردازش می‌شود، با استفاده از String.prototype.matchAll برای شمارش و String.prototype.replace برای جایگزینی.

  1. 1
    الگو به RegExp کامپایل شد
    هنگام تایپ، عبارت جست‌وجو با یک debounce ۱۵۰ میلی‌ثانیه‌ای به یک RegExp جاوااسکریپت کامپایل می‌شود پس الگوهای پاتولوژیک تب را در هر ضربه کلید یخ نمی‌زنند. در حالت متن-ساده، هر متاکاراکتر عبارت باقاعده ابتدا گریز می‌شود، پس نقطه‌ها و پرانتزهای لفظی به‌عنوان لفظی در نظر گرفته می‌شوند. فعال‌کردن حالت Regex الگوی شما را مستقیم عبور می‌دهد. حالت کل-کلمه الگو را در لنگرهای مرز-کلمه \b(?:...)\b می‌پیچد، و حالت حروف-غیرحساس پرچم i را اضافه می‌کند.
  2. 2
    پاس تک matchAll می‌شمارد و برجسته می‌کند
    یک فراخوانی matchAll روی متن debounce-شده هر شیء تطبیق را تولید می‌کند. تعداد تطبیق مستقیماً از طول آن آرایه خوانده می‌شود. برای متن‌های زیر ۲۰۰٬۰۰۰ کاراکتر، یک پیش‌نمایش برجسته‌شده با پیمایش آفست‌های تطبیق و پیچیدن هر برخورد در یک تگ <mark> ساخته می‌شود — گریز HTML پیش از تزریق روی بخش‌های متن خام اعمال می‌شود، نه پس از آن، پس تطبیق‌های حاوی &، <، یا > به‌درستی مدیریت می‌شوند.
  3. 3
    جایگزینی با متن لفظی یا بازارجاع‌های گروه-گرفتن
    خروجی توسط String.prototype.replace با پرچم global تولید می‌شود، و هر تطبیق را یک‌جا جایگزین می‌کند. در حالت متن-ساده، هر $ در رشته جایگزینی به $$ دوبرابر می‌شود پس کاراکترهایی مانند $& و $1 به‌صورت لفظی درج می‌شوند نه به‌عنوان بازارجاع تفسیر. در حالت Regex، $1، $2، و غیره به‌عنوان جایگزینی‌های استاندارد گروه-گرفتن جاوااسکریپت کار می‌کنند.
  4. 4
    کپی یا دانلود نتیجه
    متن بازنویسی‌شده هنگام تایپ در یک textarea فقط-خواندنی ظاهر می‌شود. کپی از API navigator.clipboard.writeText مرورگر استفاده می‌کند. دانلود یک Blob از نوع text/plain به‌صورت همزمان می‌سازد و یک ذخیره محلی راه‌اندازی می‌کند — هیچ‌چیز در هیچ نقطه‌ای دستگاه شما را ترک نمی‌کند.

راهنما

مثال عملی

فرض کنید فهرستی دارید که تاریخ‌ها در آن ابتدا سال نوشته شده و شما نیاز دارید ابتدا روز نوشته شود. عبارت "Invoice 2026-11-04 due 2026-12-15" را در کادر «متن شما» بچسبانید، «عبارت باقاعده» را تیک بزنید، در کادر «جستجو» عبارت (\d{4})-(\d{2})-(\d{2}) و در کادر «جایگزینی با» عبارت $3/$2/$1 را تایپ کنید. خط زیر کادرها می‌گوید «۲ مورد پیدا شد»، هر دو تاریخ برجسته می‌شوند و «نتیجه» عبارت "Invoice 04/11/2026 due 15/12/2026" را نشان می‌دهد. وقتی تیک کادر برداشته شود، همان متن عیناً جستجو می‌شود، بنابراین جستجوی . در a.b.c دو مورد پیدا می‌کند (نقطه‌ها)، درحالی‌که با تیک کادر ۵ مورد پیدا می‌کند، زیرا . در این حالت به معنی هر کاراکتری است. پاک‌سازی سریع «فشرده‌سازی فاصله‌های چندگانه» عبارت "a b c d" را به "a b c d" تبدیل می‌کند (۳ مورد).

کدام تنظیمات را استفاده کنید و محدودیت‌ها

  • با متن ساده شروع کنید. وقتی تیک «عبارت باقاعده» برداشته شده باشد، آنچه در «جستجو» تایپ می‌کنید عیناً جستجو می‌شود و علامت $ در «جایگزینی با» به‌عنوان یک علامت دلار ساده درج می‌شود. فقط زمانی کادر را تیک بزنید که به الگوهایی مانند ارقام، بخش‌های اختیاری یا گروه‌ها نیاز دارید.
  • گزینه‌های بزرگی/کوچکی حروف و کلمه کامل را بررسی کنید. تطبیق به بزرگی و کوچکی حروف حساس است مگر اینکه «غیرحساس به بزرگی/کوچکی» تیک خورده باشد، بنابراین "cat" کلمه "Cat" را پیدا نمی‌کند. «کلمه کامل» مانع از تطبیق "cat" درون کلماتی مانند "concatenate" و "category" می‌شود. این گزینه برای کلمات دارای اعراب مانند café و متن‌های چینی و ژاپنی نیز کار می‌کند، جایی که هر لبه کاراکتر به‌عنوان لبه کلمه محسوب می‌شود. در عبارت "cat concatenate Cat category cat." یک جستجوی ساده برای cat چهار مورد پیدا می‌کند و جستجوی غیرحساس به بزرگی/کوچکی به‌اضافه کلمه کامل سه مورد پیدا می‌کند.
  • در حالت عبارت باقاعده، به لنگرهای خط توجه کنید. الگوها از نحو عبارت باقاعده جاوااسکریپت استفاده می‌کنند. گزینه چندخطی وجود ندارد، بنابراین ^ و $ فقط با ابتدا و انتهای کل متن تطبیق پیدا می‌کنند، نه هر خط، و . از شکست خط عبور نمی‌کند. برای لنگر کردن به هر خط، از (?<=^|\n) برای ابتدای خط و از (?=\r?\n|$) برای انتهای خط استفاده کنید. گروه‌های ضبط در «جستجو» به‌صورت $1 و $2 در «جایگزینی با» بازمی‌گردند.
  • از پاک‌سازی‌های سریع استفاده کنید. در بخش «پاک‌سازی‌های سریع» ده پیش‌فرض تک‌کلیکی وجود دارد: «صاف‌کردن گیومه دوتایی»، «صاف‌کردن گیومه تکی»، «فشرده‌سازی فاصله‌های چندگانه»، «حذف شکست خط»، «تبدیل تب به فاصله» (چهار فاصله)، «حذف فاصله‌های خالی انتهای خط»، «حذف خطوط خالی» و سه مورد برای متن چینی و ژاپنی که کاراکترهای تمام‌پهنا را تبدیل می‌کنند، نشانه‌های سجاوندی را به تمام‌پهنا تبدیل می‌کنند و فاصله‌های بین کاراکترها را حذف می‌کنند. یک پیش‌فرض، کادرهای جستجو و جایگزینی را پر می‌کند و «عبارت باقاعده» را تیک می‌زند. دو پیش‌فرضی که کاراکترها را تبدیل می‌کنند، به‌محض اینکه هر یک از کادرها را ویرایش کنید، تبدیل را متوقف می‌کنند.
  • به‌جای چسباندن، یک فایل بارگذاری کنید. «بارگذاری یک فایل متنی» فایل‌های .txt، .csv، .log و .md یا سایر فایل‌های متنی را باز می‌کند و آن‌ها را در مرورگرتان می‌خواند. فایلی که باینری به نظر برسد رد می‌شود و فایلی با نوع کاملاً متفاوت، مانند DOCX یا PDF، با پیامی که نوع آن را مشخص می‌کند برگشت داده می‌شود. «دانلود txt.» نتیجه را با نام و پسوند فایل اصلی ذخیره می‌کند، بنابراین orders.csv به‌صورت orders.csv باقی می‌ماند؛ برای متن چسبانده‌شده، نام فایل find-replace-result.txt خواهد بود.
  • برای متن‌های بسیار بزرگ منتظر مکث باشید. نتایج حدود ۰/۱۵ ثانیه پس از توقف تایپ به‌روز می‌شوند، وقتی متن از ۲۰۰,۰۰۰ کاراکتر عبور کند این زمان ۰/۳۵ ثانیه و پس از ۱,۰۰۰,۰۰۰ کاراکتر ۰/۷ ثانیه می‌شود. برای بیش از ۲۰۰,۰۰۰ کاراکتر، پیش‌نمایش برجسته خاموش می‌شود و صفحه می‌گوید «پیش‌نمایش برجسته برای متن‌های بسیار بزرگ غیرفعال است - نتیجه زیر همچنان به‌روز است.» تعداد موارد پیدا شده و نتیجه به کار خود ادامه می‌دهند. این ابزار خودش اندازه فایل را بررسی نمی‌کند، بنابراین یک فایل بسیار بزرگ توسط حافظه مرورگر شما محدود می‌شود.

مشکلات رایج و راه حل آن‌ها

می‌گوید «عبارت باقاعده نامعتبر است».
الگوی شما یک نحو عبارت باقاعده معتبر نیست. این معمولاً زمانی رخ می‌دهد که «عبارت باقاعده» تیک خورده باشد درحالی‌که شما به دنبال متن معمولی حاوی نمادهایی مانند ( [ * + ? یا بک‌اسلش می‌گردید. برای مثال در Chrome، C++ خطای "Nothing to repeat"، [abc خطای "Unterminated character class" و یک ( تنها خطای "Unterminated group" را می‌دهد. برای جستجوی عینی متن، تیک کادر را بردارید یا پیش از هر نماد یک بک‌اسلش قرار دهید، مانند C\+\+. برای دیدن پیام خود مرورگر، «جزئیات» را باز کنید؛ متن پیام بسته به مرورگر متفاوت است و به انگلیسی نشان داده می‌شود.
می‌گوید «نمی‌توان آن فایل را خواند. لطفاً یک فایل متنی ساده (.txt, .csv, .log, .md) انتخاب کنید.»
فایل باینری به نظر می‌رسد: ۴,۰۹۶ کاراکتر اول آن حاوی یک کاراکتر NUL است، مانند یک فایل Word، Excel یا PDF که به txt. تغییر نام داده شده، یا مرورگر نتوانسته آن را بخواند. فایل اصلی را در برنامه خودش باز کنید و متن را کپی کنید، یا ابتدا آن را به‌صورت متن ساده یا CSV ذخیره کنید. یک فایل با نوع کاملاً متفاوت معمولاً زودتر و با پیامی مانند "report.docx یک فایل DOCX است که این ابزار نمی‌تواند باز کند" رد می‌شود.
می‌گوید «۰ مورد پیدا شد» درحالی‌که متن به‌وضوح آنجاست.
به این ترتیب بررسی کنید: تطبیق به بزرگی و کوچکی حروف حساس است مگر اینکه «غیرحساس به بزرگی/کوچکی» تیک خورده باشد؛ «کلمه کامل» تیک خورده و متن درون یک کلمه طولانی‌تر قرار دارد؛ «عبارت باقاعده» تیک خورده و کاراکتری مانند . یا ( به‌عنوان یک الگو عمل می‌کند؛ یا فاصله‌ها، تب‌ها و شکست‌های خط در متن شما با آنچه تایپ کرده‌اید مطابقت ندارد. شمارش کسری از ثانیه پس از توقف تایپ به‌روز می‌شود، بنابراین پس از یک تغییر لحظه‌ای صبر کنید.
جایگزینی، $1 یا $& را به‌همان صورت تایپ‌شده نشان می‌دهد، نه متن تطبیق‌یافته را.
ارجاعاتی مانند $1 فقط زمانی کار می‌کنند که «عبارت باقاعده» تیک خورده باشد و فقط وقتی که «جستجو» حاوی یک گروه تطبیق درون پرانتز باشد، برای مثال (\d+). وقتی تیک کادر برداشته شده باشد، هر $ عیناً همان‌طور که تایپ شده درج می‌شود. اگر الگو گروه اول نداشته باشد، جاوااسکریپت نیز $1 را به‌صورت متن ساده باقی می‌گذارد.
من در «جایگزینی با» عبارت \n را تایپ کردم و به‌جای شکست خط، یک بک‌اسلش و یک n دریافت کردم.
کادر «جایگزینی با» یک کادر تک‌خطی است و \n را به شکست خط تبدیل نمی‌کند، بنابراین دو کاراکتر را درج می‌کند. در «جستجو»، وقتی «عبارت باقاعده» تیک خورده باشد، \n و \r?\n با شکست خط تطبیق پیدا می‌کنند، که نحوه کار «حذف شکست خط» و «حذف خطوط خالی» نیز همین است. نمی‌توان یک شکست خط را در جایگزینی تایپ کرد، بنابراین برای افزودن شکست خط از یک ویرایشگر متن که این قابلیت را پشتیبانی می‌کند استفاده کنید.

مقایسه آن

یک واژه‌پرداز یا ویرایشگر کد، موارد تطبیق را یکی‌یکی مرور می‌کند، سند را درجا ویرایش می‌کند، می‌تواند روی فایل‌های زیادی کار کند و قابلیت بازگشت به قبل ارائه می‌دهد. این صفحه برعکس عمل می‌کند: همه موارد تطبیق را یکباره در یک نسخه از متن شما جایگزین می‌کند، ابتدا یک شمارش زنده و موارد تطبیق برجسته را نشان می‌دهد و متن اصلی شما را تا زمانی که تغییرش دهید در کادر اول باقی می‌گذارد. عبارات باقاعده آن از نوع جاوااسکریپت است که در جزئیات با انواع موجود در ویرایشگرها و ابزارهای خط فرمان دیگر تفاوت دارد. برای مثال، گروه‌های نام‌گذاری‌شده به‌صورت (?<name>...) نوشته می‌شوند نه (?P<name>...)، لنگرهای هر خط وجود ندارند و نمی‌توان یک شکست خط را در جایگزینی تایپ کرد. این ابزار برای یک بلوک متنی چسبانده‌شده یا یک فایل log یا CSV مناسب است؛ برای یک پوشه کامل از فایل‌ها، از یک ویرایشگر یا اسکریپت استفاده کنید.

ابزارهای مرتبط

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