Find and replace multiple words at once

Runs many replacements in one pass — one rule per line.

Write one rule per line in the form find => replace and press the button. Every rule is applied to the whole text in a single pass, and the message underneath tells you how many replacements were made.

Why multiple rules at once matters

Every editor has find and replace. What none of them have is a way to run twenty replacements without doing it twenty times — opening the dialog, typing, pressing replace-all, clearing the fields, typing again. Twenty rules means forty text entries and a real chance of forgetting one.

Here the rules live in a box you can save, paste and reuse. Building a glossary of corrections once and reapplying it to every document is the whole point: British to American spelling, old product names to new ones, a client's style list, a set of placeholder tokens filled with real values.

Writing rules

The separator is =>. A single pipe | works too, if that is easier to type. Everything before it is what you search for, everything after it is the replacement, and spaces around the arrow are ignored, so a => b and a=>b behave identically.

To delete a word rather than replace it, leave the right side empty: basically => removes every "basically". To insert a line break in the replacement, that is one of the few things a plain rule cannot do — use regular expression mode, where \n works.

Rules run in the order you wrote them, top to bottom. This matters more than people expect: if rule one turns A into B and rule two turns B into C, then A ends up as C. Sometimes that is what you want and sometimes it silently double-applies. When chaining feels risky, run the rules in separate passes and check between them — undo makes that cheap.

The three options

Whole words only is on by default and is the setting that prevents most accidents. Replacing cat with dog without it also turns "catalogue" into "dogalogue" and "concatenate" into "condogenate". With it on, only the standalone word is touched. It understands letters in any alphabet, so it works correctly on Cyrillic, Greek and accented text — plenty of tools use a rule that only knows about English letters and mangle everything else.

Case sensitive is off by default, so iphone matches "iPhone" and "IPHONE" too. Turn it on when capitalisation is the thing you are correcting.

Regular expressions turns each left-hand side into a pattern. \s+ => collapses runs of whitespace, ^\d+\. => strips leading numbering, (\w+)@(\w+) => $2 at $1 rearranges around a match using $1 and $2 for captured groups. Note that whole-word matching is ignored in this mode, because your pattern already controls its own boundaries.

What people use it for

Doing it without this tool

Word and Google Docs: one replacement at a time. Word can record a macro that does several, but macros are blocked on most managed laptops.

Excel: nested SUBSTITUTE calls — =SUBSTITUTE(SUBSTITUTE(A1,"a","b"),"c","d") — which stops being readable at about four levels and has a hard nesting limit.

Notepad++: no multi-rule replace built in. There is a macro recorder, and the Python Script plugin, both of which are more setup than the job usually deserves.

Command line: sed -e 's/a/b/g' -e 's/c/d/g' file.txt chains rules, or put them in a .sed file and use sed -f rules.sed. This is the closest equivalent to what this page does.

Try:
0Words
0Characters
0No spaces
0Sentences
0Paragraphs
0Lines
0Pages
0Reading
0Speaking

Runs entirely in your browser. Your text is never uploaded — open DevTools, Network tab, and you will see zero requests while you use this tool.

How to use it

  1. Paste your text into the main box.
  2. Write your rules in the rules box, one per line, as find => replace.
  3. Leave "Whole words only" ticked unless you want partial matches inside longer words.
  4. Press "Replace all" and check the count of replacements reported underneath.

Related tools

Compare two listsFinds what is only in list A, only in B, in both, or different between them.Column ↔ comma listTurns lines into one separated string — and back again.Truncate textShortens each line to a maximum length, optionally without cutting a word.Add line numbersNumbers every line, in the format you choose — and removes numbering too.Name pickerPaste a list, pick a winner. No account, no cloud, no limit.Magic 8 ballAsk a yes or no question. The ball answers.Count words in Google DocsThe exact menu path in every app, and why two counters give you two different…

See all text tools →

Frequently asked questions

How do I write the rules?

One rule per line, in the form find => replace. A single pipe character works as a separator too. To delete a word instead of replacing it, leave the right-hand side empty.

Will replacing "cat" also change "catalogue"?

Not with "Whole words only" ticked, which is the default. The word has to stand alone, surrounded by non-letter characters, so longer words containing it are untouched.

In what order do the rules run?

Top to bottom, each applied to the whole text. If one rule produces text that a later rule also matches, the later rule will change it again — check the result when your rules could chain.

Can I use regular expressions?

Yes, tick the regex option. Standard JavaScript syntax applies and you can reference captured groups as $1, $2 in the replacement. Whole-word matching is ignored in this mode.

How do I know it worked?

The message under the buttons reports the total number of replacements made. Zero means no rule matched, which usually points to a typo or to whole-word mode being stricter than you expected.