メインコンテンツへスキップ

無料テキストの検索と置換

テキストを通常検索または正規表現で検索・置換。一致数をリアルタイムに表示し、プレビューでハイライトします。大文字小文字の無視、単語単位の一致、キャプチャグループの後方参照に対応。

読み込み後はオフラインでも動作
クイッククリーンアップ
検索語を入力してください

💡 正規表現モードでは、検索に (\d{4})-(\d{2}) のようなキャプチャグループを使用し、置換で $1、$2 で参照できます — 日付・氏名・IDの一括変換に便利です。

主な用途

  • テキストを一括検索・置換テキストブロック内の単語またはフレーズのすべての出現を一度に置換します。
  • 正規表現での検索と置換キャプチャグループ付きの正規表現を使用して、テキストを一括で再フォーマットします。
  • コード内の検索と置換スニペット内の変数をすばやく名前変更したり、パターンを書き直したりします。
  • 乱雑なデータをクリーンアップ貼り付けたデータから余分な文字、区切り文字、フォーマットを削除または正規化します。
  • 執筆中に単語を置換するドラフト全体で繰り返される単語を交換したり、キャラクター名を変更したりします。

使い方

この検索・置換ツールは JavaScript 標準の RegExp エンジンでブラウザ内だけで動作します。ライブラリもサーバーも使わず、アップロードもありません。入力した瞬間にローカルで処理し、件数は String.prototype.matchAll、置換は String.prototype.replace で行います。

  1. 1
    パターンがRegExpにコンパイルされる
    入力すると、検索語は150ミリ秒のデバウンス付きでJavaScriptのRegExpにコンパイルされます。これにより、病的なパターンがキーストロークごとにタブをフリーズさせることがなくなります。プレーンテキストモードでは、まずすべての正規表現メタ文字がエスケープされるため、リテラルのドットや括弧はそのまま文字として扱われます。Regexモードを有効にすると、パターンはそのまま渡されます。単語単位モードはパターンを\b(?:...)\bの単語境界アンカーで囲み、大文字小文字を区別しないモードはiフラグを追加します。
  2. 2
    単一のmatchAllパスがカウントとハイライトを行う
    デバウンスされたテキストに対する1回のmatchAll呼び出しがすべてのマッチオブジェクトを生成します。マッチ数はその配列の長さから直接読み取られます。20万文字未満のテキストでは、マッチのオフセットを走査し、各一致を<mark>タグで囲んでハイライトされたプレビューが構築されます — HTMLエスケープは注入の前に(後ではなく)生のテキストセグメントに適用されるため、&、<、>を含む一致も正しく処理されます。
  3. 3
    リテラルテキストまたはキャプチャグループのバックリファレンスで置換する
    出力はグローバルフラグ付きのString.prototype.replaceによって生成され、すべての一致を一度に置換します。プレーンテキストモードでは、置換文字列内の$はすべて$$に二重化されるため、$&や$1のような文字がバックリファレンスとして解釈されるのではなく文字通り挿入されます。Regexモードでは、$1、$2などは標準のJavaScriptキャプチャグループ置換として機能します。
  4. 4
    結果をコピーまたはダウンロード
    書き換えられたテキストは入力するたびに読み取り専用のテキストエリアに表示されます。コピーにはブラウザのnavigator.clipboard.writeText APIが使われます。ダウンロードはtext/plain型のBlobを同期的に構築しローカル保存をトリガーします — いかなる時点でも端末の外に出るものはありません。

ガイド

実例

日付が年から書かれているリストを、日から始まる形式にしたいとします。「Your text」に「Invoice 2026-11-04 due 2026-12-15」を貼り付け、「Regular expression」にチェックを入れ、「Find」に (\d{4})-(\d{2})-(\d{2}) を、「Replace with」に $3/$2/$1 を入力します。ボックスの下の行に「2 matches found」と表示され、両方の日付がハイライトされ、「Result」には「Invoice 04/11/2026 due 15/12/2026」と表示されます。チェックを外した状態では同じテキストが文字通り検索されるため、a.b.c で . を検索すると2件(ドット)が見つかりますが、チェックを入れると . は任意の文字を意味するため5件見つかります。「Collapse multiple spaces」クイッククリーンアップは、「a b c d」を「a b c d」に変換します(3件の一致)。

使用する設定と制限事項

  • まずはプレーンテキストで始めましょう。 「Regular expression」のチェックが外れている場合、「Find」に入力した内容がそのまま検索され、「Replace with」の $ は通常のドル記号として挿入されます。数字、オプション部分、グループなどのパターンが必要な場合にのみ、このボックスにチェックを入れてください。
  • 大文字小文字と単語単位のオプションを確認しましょう。 「Case-insensitive」にチェックが入っていない限り、マッチングは大文字と小文字を区別するため、「cat」で「Cat」は見つかりません。「Whole word」は、「cat」が「concatenate」や「category」の内部で一致するのを防ぎます。これは café のようなアクセント付きの単語や、中国語や日本語のテキストでも機能し、すべての文字の境界が単語の境界として扱われます。「cat concatenate Cat category cat.」で cat をプレーン検索すると4件見つかり、大文字小文字を区別せず単語単位で検索すると3件見つかります。
  • 正規表現モードでは、行アンカーに注意しましょう。 パターンはJavaScriptの正規表現構文を使用します。複数行オプションはないため、^ と $ はテキスト全体の先頭と末尾にのみ一致し、各行の先頭と末尾には一致しません。また、. は改行を越えません。各行にアンカーするには、行の先頭に (?<=^|\n) を、行の末尾に (?=\r?\n|$) を使用します。「Find」のキャプチャグループは、「Replace with」で $1, $2 として戻ってきます。
  • クイッククリーンアップを活用しましょう。 「Quick cleanups」には10個のワンクリックプリセットがあります:「Straighten double quotes」、「Straighten single quotes」、「Collapse multiple spaces」、「Remove line breaks」、「Tabs to spaces」(4スペース)、「Trim trailing whitespace」、「Remove empty lines」、そして中国語と日本語のテキスト用に、全角文字に変換、句読点を全角に変換、文字間のスペースを削除する3つです。プリセットは「Find」と「Replace with」に入力し、「Regular expression」にチェックを入れます。文字を変換する2つのプリセットは、どちらかのボックスを編集するとすぐに変換を停止します。
  • 貼り付ける代わりにファイルを読み込みましょう。 「Load a text file」は .txt、.csv、.log、.md ファイル、またはその他のテキストファイルを開き、ブラウザで読み取ります。バイナリに見えるファイルは拒否され、DOCXやPDFなど明らかに異なる種類のファイルは、その種類を示すメッセージとともに拒否されます。「Download .txt」は結果を元のファイル名と拡張子で保存するため、orders.csv は orders.csv のままです。貼り付けたテキストの場合、ファイル名は find-replace-result.txt となります。
  • 非常に大きなテキストでは一時停止を想定してください。 結果は、入力が停止してから約0.15秒後、テキストが20万文字を超えると0.35秒後、100万文字を超えると0.7秒後に更新されます。20万文字を超えると、ハイライトプレビューはオフになり、ページに「Highlight preview is disabled for very large text - the result below is still up to date.」と表示されます。一致件数と結果は引き続き機能します。このツールはファイルサイズ自体をチェックしないため、非常に大きなファイルはブラウザのメモリによって制限されます。

よくある問題とその解決方法

「Invalid regex」と表示されます。
パターンが有効な正規表現構文ではありません。これは通常、「Regular expression」にチェックが入っているときに、( [ * + ? やバックスラッシュなどの記号を含む通常のテキストを検索した場合に発生します。例えばChromeでは、C++ は「Nothing to repeat」、[abc は「Unterminated character class」、単独の ( は「Unterminated group」と表示されます。ボックスのチェックを外してテキストを文字通り検索するか、C\+\+ のように各記号の前にバックスラッシュを付けてください。「Details」を開くとブラウザ自身のメッセージが表示されます。その表現はブラウザによって異なり、英語で表示されます。
「Could not read that file. Please choose a plain text file (.txt, .csv, .log, .md).」と表示されます。
ファイルがバイナリに見えます。最初の4,096文字にNUL文字が含まれているか(.txtに名前変更されたWord、Excel、PDFファイルなど)、ブラウザが読み取れませんでした。元のプログラムでオリジナルを開いてテキストをコピーするか、最初にプレーンテキストまたはCSVとして保存してください。明らかに異なる種類のファイルは通常、より早い段階で「report.docx is a DOCX file, which this tool can't open.」のようなメッセージで拒否されます。
テキストが明らかに存在するのに「0 matches found」と表示されます。
次の順序で確認してください:「Case-insensitive」にチェックが入っていない限り、マッチングは大文字と小文字を区別します。「Whole word」にチェックが入っており、テキストがより長い単語の内部にある。「Regular expression」にチェックが入っており、. や ( などの文字がパターンとして機能している。または、テキスト内のスペース、タブ、改行が入力したものと異なる。件数は入力が停止してからコンマ数秒後に更新されるため、変更後はしばらくお待ちください。
置換結果に、一致したテキストではなく、入力したとおりの $1 や $& が表示されます。
$1 などの参照は、「Regular expression」にチェックが入っており、「Find」に括弧で囲まれた一致グループ(例:(\d+))が含まれている場合にのみ機能します。ボックスのチェックが外れている場合、すべての $ は入力したとおりに挿入されます。パターンに最初のグループがない場合、JavaScriptは $1 をプレーンテキストのまま残します。
「Replace with」に \n と入力したら、改行ではなくバックスラッシュと n が表示されました。
「Replace with」は1行のボックスであり、\n を改行に変換しないため、2文字が挿入されます。「Find」では、「Regular expression」にチェックが入っている場合、\n と \r?\n は改行に一致します。これが「Remove line breaks」と「Remove empty lines」の仕組みです。改行は置換テキストに入力できないため、改行を追加するには、それをサポートするテキストエディタを使用してください。

比較

ワードプロセッサやコードエディタは、一致箇所を一度に1つずつ進め、ドキュメントをその場で編集し、多数のファイルにまたがって作業でき、元に戻す機能も提供します。このページはその逆で、テキストのコピーに対してすべての一致箇所を一度に置換し、最初にライブの件数とハイライトされた一致箇所を表示し、あなたが変更するまで元のテキストを最初のボックスに残します。その正規表現はJavaScriptのものであり、他のエディタやコマンドラインツールのフレーバーとは細部が異なります。例えば、名前付きグループは (?P<name>...) ではなく (?<name>...) と記述され、行ごとのアンカーはなく、改行を置換テキストに入力することはできません。貼り付けた1つのブロックや、1つのログファイルやCSVファイルに適しています。フォルダ全体のファイルには、エディタやスクリプトを使用してください。

関連ツール

よくある質問