Command Palette

Search for a command to run...

Regex を使用せずにテキストを見つけて置き換える方法

Regex を使用せずにテキストを見つけて置き換える方法

T
Toolz Team
|Sep 13, 2026|16 分読んでください
GoogleでToolz.devを優先します

テキストツールコレクションの一部

テキストを検索して置換します

正規表現なしでオンラインでテキストを検索して置換する 一度にいくつかのルールを適用し、単語全体と一致し、大文字と小文字を制御する クライアント側、サインアップなし。

テキストを検索して置換します を使う

私は走る Toolz.dev そして、wordpressプラグインコード、laravel API、Reactフロントエンドで私の週のほとんどを費やします。 find and replace is the single edit I perform more than any other, and yet nine times of ten I do not want the powerful version of it.正規表現は望んでいません。 textの一部を取って、クライアント& #39; s old product nameのあらゆる出現を言って、新しいものと交換したい、正確に、私の検索語に迷った文字が触れるつもりはなかったものに一致することなく、それがそれです 検索と置換ツール このガイドは、find and replace の文字通りで退屈なバージョンが、なぜほとんどの場合必要なのかについて説明しています。

tl;dr: このツールは、貼り付けられたテキストのブロックを文字通り検索して置換します。 検索用語は入力されたとおりに正確に一致するため、ピリオドはピリオドに一致し、ドル記号はドル記号に一致し、エスケープや偶発的なオーバーマッチングはありません。いくつかの検索と置換のルールを追加して 1 回のパスで適用し、一致を単語全体に制限し、大文字と小文字の区別をオンまたはオフにすることができます。各ルールが何回置換されたかを報告します。すべてがブラウザーで実行されるため、貼り付けるものは何もありません。本当にワイルドカードとキャプチャ グループが必要な場合は、代わりに regex replacer が適切なツールです。

リテラル検索と置換とは何ですか?なぜ "リテラル&クォート;重要なのでしょうか?

find and replace は、1 つの文字列の出現をすべて特定し、別の文字列と交換する操作です。すべてのエディターにそれが用意されています。異なるのは、ツールが検索語をどのように解釈するかであり、その単一のデザイン選択によって、ツールが役立つのか、それともテキストを静かに台無しにするのかが決まります。

2 つの学校があります。 regular-expression replacer は、特定の文字がコマンドであるパターンとして検索語を扱います。 dot は "any character, " an asterisk は "repeat, " a dollar sign は "end of line, " を意味し、括弧、括弧、バックスラッシュはすべて特別な意味を持ちます。 literal replacer は、検索語をそれ自体、文字ごとの文字として扱い、何も特別な意味は付けません。

ほとんどの場合、リテラルはあなたが望むものであり、ここに具体的な理由があります。 version 文字列を置き換えたいとします 1.0.0 と 2.0.0 テキストのブロックで。 regex ツールでは、それらのドットはワイルドカードなので、検索も一致します 1x0y0、 1a0b0、そしてあなたが意図しなかった他の文字列。 としてドットをエスケープする必要があります 1\.0\.0 安全にするため そして忘れた場合 ツールは微妙に間違ったことをし 警告はしません 文字通りのツールでは、 1.0.0 という意味 1.0.0、点は点であり、逃げるものは何もなく、間違うものは何もない。 のような価格でも同様である $9.99、バックスラッシュを持つファイルパス、または括弧を含むコードのスニペット。 literal tool handles all of them without you thinking about pattern syntax, because there is no pattern syntax.

代わりに regex リプレーサーを使用するのはいつですか?

リテラルは正しいデフォルトですが、すべてに対する正しい答えではありません。 「ない」ふりをするよりも、どこで止まるかをお伝えしたいと思います。 a に到達します regex replace ツール 一致するものが固定文字列ではなく図形である場合 4 桁の年ごと、またはすべてのメールアドレス、またはハッシュで始まるすべての行を一致させる必要がある場合、またはキャプチャグループでピースを引き出して一致したテキストを再フォーマットしたい場合、つまりパターンワークとリテラルツールではできません 正規表現テスター は、そのパターンを実行する前に、そのパターンをビルドしてデバッグする場所です。

分割線は簡単です。探しているものを正確に入力できる場合は、リテラル検索を使用して置換し、エスケープを保存します。探しているものが形状を共有するものの正確な文字ではないもののカテゴリである場合は、正則を使用します。日常的なテキストのクリーンアップのほとんどは最初の種類であり、そのため、リテラル ツールは実際のジョブの大部分をカバーし、正則ツールは残りのジョブをカバーします。

状況 使い なんでや
固定された単語またはフレーズの名前を変更します リテラル検索と置換 用語は正確です; パターンは必要ありません
点、スラッシュ、またはを含む検索語 $ リテラル検索と置換 エスケープも、偶発的なワイルドカードマッチもありません
一度にいくつかの異なる用語を修正します 文字通りの検索と置換、複数のルール 各ルールは正確で、順番に適用されます
任意の年、メール、またはコード形状に一致します Regex 置き換える カテゴリを記述できるのはパターンだけです
一致したテキストを並べ替えるか、再フォーマットします Regex 置き換える キャプチャグループがピースを引き出して再配置します
ルールによる行開始または単語の境界での一致 Regex 置き換える アンカーと境界はパターン機能です

複数のルールはどのように機能しますか?

私が最も頼りにしている機能は、一度にいくつかのルールを適用することです。実際のクリーンアップは 1 回の交換であることはほとんどありません。クライアント's コピーを引き継ぐと、ブランド名を変更し、2 つの一貫したスペルミスを修正し、定型文を削除する必要があるかもしれません。これらを 4 つの別々のパスとして実行するのは面倒でエラーが発生しやすいです。このツールを使用すると、find-and-replace ペアごとに行を追加でき、各ルールはその前のルールの出力に基づいて動作します。

事故ではなく機能なので、その順序は理解する価値があります。ルール 1 が置き換えられるとします foo と bar、 と ルール 2 置き換える bar と baz。ルール 2 は、次のように始まるルール 1 のテキストの結果で実行されるためです foo として終わる baz.ほとんどの場合、ルールは独立しており、順序は問題ではありませんが、相互作用すると、動作は予測可能です。上から下まで、それぞれ前の結果に基づいて行われます。ツールは各ルールのカウントも表示するため、ルール 3 が何かに一致し、検索語の誤植のために何もせずにそこに座っていないことを確認できます。

全単語とケースのオプションは何をしますか?

プレーンスワップが鈍すぎるケースには 2 つのオプションが対応します。

症例の感度によって判断されます Cat、 CAT、そして cat は同じ単語か、3 つの異なるものです。デフォルトではオフになっています。ほとんどのクリーンアップは、大文字がどのように使われたかに関係なく、ある用語をキャッチしたいからです。大文字が全体のポイントである場合、つまり、ある名前のスペルを別のスペルに触れずに変更したい場合、またはコードを操作している場合、それをオンにします value あんど Value は異なる識別子です.

全単語マッチングによって、検索語が長い語の中に座るのではなく、単独で立つ必要があるかどうかが決まります これは、古典的な検索と置換の災害からあなたを救うオプションです 置き換える場合 cat と dog 全単語一致がなければ、あなたも順番になります category に dogegory あんど scatter に sdogter。 whole-word matching をオンにして、スタンドアロンワードのみ cat は置き換えられ、長い単語は放っておかれる。 ツールは、ASCII だけの定義ではなく Unicode 文字と数字を使用して単語の境界を検出するため、 のようなアクセント付き単語が表示される café は単一の単語として扱われ、その境界は正しく見つかりますが、これは古典を使用した素朴な実装です \b 境界線が間違ってしまうでしょう.

ここでは、テキスト ツールが Unicode をどのように尊重する必要があるかについて、より広範な点があります。これについては、 で説明します テキスト ツール ガイド: テキストをユーザーが認識した文字としてではなくバイトとして扱うことは、驚くべき数のツールバグの原因です。

実際の仕事の使い方

いくつかのパターンが何度も出てきます PDFやメールからテキストを貼り付けると 用語が一貫性なく書かれていて 届いてしまうことが多く リテラルルールが1つあれば 全てのインスタンスを修正します クライアント'sコンテンツを移行すると ブランド名や 古いドメインや 繰り返されるフレーズのカップルに対して ルールの束をセットアップし 一度にデータをインポートする前にクリーンアップすると ルールを使って 繰り返されるプレフィックスや 迷走マーカーの文字を 取り除き 何も無い状態に置きます これは単なるルールで 空の置換です。

他のテキストツールと自然にペアリングします 貼り付けたテキストを で平らにすることがよくあります 改行を削除 まず、結果に対して find と replace を実行します。 job が本当に単語の形を交換するのではなく、変更することに関するものである場合、 ケースコンバーター の方が適しており、リストの重複を削除するときに、 に到達します 重複 ラインリムーバー 代わりに.どのツールがどのジョブのためのものであるかを知ることは、速度の半分であり、そのより広い概要があります 開発者の生産性向上ツール ガイド.

最後に、これらをブラウザで実行するように構築した理由はプライバシーです。 find-and-replace ツールに貼り付けるテキストは、多くの場合、下書き、クライアント & #39; の未公開コピー、トランスクリプト、またはビジネスでランダムなサーバーにアップロードしていないデータです。このツールの動作はすべて、自分のマシン上の JavaScript で行われます。何も送信、ログ、保存されず、ネットワークから切断してツールが動作し続けるのを確認することで確認できます。

有効な例: ページ全体で製品の名前を変更します

それは人々が十分に活用していない部分なので、複数のルールのアイデアを具体化させてください。 "QuickBooks Lite" から " Ledgerly; にブランド変更されたクライアントを言います。から移動しました oldsite.com にする ledgerly.app、およびそれらの古いコピーは綴りを保ちました "e-mail" 新しいスタイルガイドが望んでいる間ハイフンと "email." それは3 つの独立した変更、と私はツールを通して3 回の旅行ではなく、1 つのパスで3 つのルールとしてそれらを設定します。

ルール one finds QuickBooks Lite と置き換えます Ledgerly. ルール 2 見つけ oldsite.com と置き換えます ledgerly.app;ここでは両方のドメインの点がリテラルであるため、正規表現ツールでは処理されるものの、何もエスケープする必要がないことに注意してください oldsite.com としてマッチング oldsiteXcom 同様に.ルール 3 は見つける. e-mail と置き換えます email。 page を貼り付けて、3 つすべてを実行すると、各ルールの横にあるカウントから、ブランド名が 9 回変更され、ドメインが 4 回変更され、ハイフン修正が 2 回ヒットしたことがわかります。 rule 3 がゼロを示した場合、コピーにハイフン付きのスペルが含まれていないことがわかり、ルールを削除できます。

カウントはこのワークフローの静かなヒーローです。それらがなければ、各ルールがその役割を果たしたと信頼しています。それらを使用すると、検索用語が正しかったか間違っていたかというフィードバックがすぐに得られます。一致すると予想したゼロは、ほとんどの場合、検索フィールドの誤植か、大文字と小文字の区別を切り替えることで修正できます。

マッチングはどのように機能しますか?

ボンネットの下で何が起こるかについて 少し知る価値があります そうしないと驚くような行動があるかを 説明してくれるからです ツールはテキストを左から右にスキャンします 各位置で検索語がそこから始まるかチェックします もしそうなら そしてどんな全語条件でも満たされれば 置換を書き込み 一致したテキストを飛び越えます そうでない場合は 1 文字をコピーして 1 つずつ進みます これが 1 つのルール内で 置換が再帰的ではない理由です 置換を書き込むと 内部ではなく 後からスキャンを続けるので 置換します aa と a 文字列 で aaa あなたを与えます aa まで崩壊するのではなく a。折りたたみが必要な場合は、ルールを 2 回実行します。これは、同じ find と replace を持つ 2 番目のルールが実行するものとまったく同じです。

大文字小文字を区別しないマッチングは、文字列全体を最初に小文字化すのではなく、文字ごとに行われます。これは実装の詳細のように聞こえますが、正確さにとって重要です。一部の文字は小文字化すると長さが変わり、小文字化けした文字列全体を比較すると、位置がずれて出力が破損します。一度に 1 文字ずつ比較すると、すべてのインデックスが正直に保たれます。単語全体の境界は、一致の直前と直後の文字に対してチェックされ、Unicode 文字や数値は単語の一部として扱われます。これにより、アクセント付きスクリプトと非ラテン系スクリプトが期待どおりに動作します。

これはどれも、日常の使用で考えなければならないことではありません。しかし、それは、エッジケースで静かに間違ったことをするツールと、クライアントで信頼できるツールとの違いです' s コピー。それが、私がテキストを正数ボックスに貼り付けるよりも、専用のリテラル置換ツールを使用したい理由であり、私の検索語に特別な文字が含まれていないことを願っています。

よくある質問

regex を使用せずにテキストを見つけて置換するにはどうすればよいですか?

ツールにテキストを貼り付け、見つける正確なフレーズと置き換える正確なフレーズを入力して実行します 検索は文字通りであるため、入力したすべての文字はそれ自体として一致し、何もエスケープする必要はありません すべての発生が交換され、あなたはすべての変更が行われた数のカウントを取得します, 何もアップロードされずに、ブラウザで。

複数の異なる単語を同時に置き換えることはできますか?

はい。 find-and-replace ペアごとに行を追加し、ツールはそれらを順番に適用し、それぞれがその前のルールの結果に基づいて機能します。これは、ブランドの名前を変更し、2 つのスペルミスを修正し、1 つのパスで定型文の一部を削除する方法であり、各ルールは独自の置換数を示すため、一致していることがわかります。

これと正規表現置換ツールの違いは何ですか?

このツールは検索語句に文字通り一致するので、ドットはドットだけと一致し、ドル記号はドル記号のみと一致し、学習するパターン構文がなく、偶発的なオーバーマッチングもありません。 regex replace ツールは、検索語をワイルドカード、アンカー、キャプチャ グループを含むパターンとして扱います。これは、任意の年や電子メール アドレスなどのカテゴリに一致させる必要があります。必要なものを正確に入力できる場合はリテラルを使用します。; 図形に一致する場合は regex を使用します。

全単語マッチングはどのようにして不要な置換を停止するのでしょうか?

With whole-word matching on, the search term is only replaced when it stands on its own rather than inside the longer word.全単語マッチングをオンにすると、検索語句は長い単語の中ではなく、それ自体が立っているときにのみ置き換えられます cat その後、変更します cat でも葉っぱ category、 scatter、そして located 手つかずのツールは Unicode を認識した境界を使用するため、アクセントのある単語と英語以外の単語は間違った場所で分割されるのではなく、正しく処理されます。

改行や間隔を見つけて交換すると変更されますか?

いいえ 検索した文字のみが変更されます 一致した部分の改行、インデント、間隔、句読点はそのまま残ります 置換がオリジナルより長くなったり短くなったりすると、周囲のテキストは自然にシフトしますが、それ以外は何も再フォーマットまたはリフローされません。

処理できるテキスト量に制限はありますか?

ブラウザ& #39; sメモリを超える固定制限はありません 作業はサーバーではなくデバイス上で行われるため、数十万文字のブロックはほぼ瞬時に処理され、アップロードサイズの上限はありません。本全体のサイズであれば、短い一時停止に気づくかもしれませんが、通常の文書は事実上即時です。

私のテキストはどこにでもアップロードまたは保存されていますか?

いいえ テキストはブラウザの JavaScript によって処理され、送信、ログ記録、保存されることはありません。交換を実行している間にネットワーク タブを開くか、インターネットから切断することでこれを確認できます。これは、ページが読み込まれるとツールがオフラインで動作し続けるためです。下書き、クライアント コピー、その他プライベートなものにクライアント サイド ツールを使用する理由です。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!