Find & Replace

Find & Replace

Find and replace text in your browser with literal, regex, or multiple pair modes. The result updates as you type. Nothing is uploaded.

Free
No signup
Instant
Private

3/1000

3/1000

Text to process

12/10000

Result

3 replacements

bar bar bard

Fast & Accurate

Replacements update as you type. The count is how many non-overlapping edits ran.

Regex Support

Regex Mode uses this browser’s JavaScript RegExp for classes, groups, and $1.

Multiple Replacements

Run up to eight find/replace pairs in order. Later pairs see earlier edits.

Secure & Private

Find, replace, and haystack never leave this tab. Close the page to discard them.

Works Everywhere

The same two cards work on a phone or a desktop. Nothing to install.

Popular Use Cases

Code Refactoring

Rename a symbol, swap an endpoint, or retarget a package path in a pasted snippet.

Content Editing

Fix a repeated typo or standardize a product name across a draft.

Data Cleaning

Strip a prefix, normalize separators, or drop junk characters from a CSV column.

Log Analysis

Mask a host, collapse a noisy token, or highlight an error string before you grep.

Document Management

Fill a template placeholder or apply the same wording change across a short memo.

Your data stays private

Find, replace, and haystack stay in your browser. Uploaded files are read locally. Nothing is stored on a server.

Learn more about privacy →

About find and replace in the browser

Find & Replace edits a haystack in this tab. Simple Replace walks with String.indexOf and splices the replacement for every non-overlapping match. It is not a regex: a dot is a dot, and there are no backreferences. “foo” in “foo foo food” becomes “bar bar bard” because “food” starts with “foo”. Match case is on by default. Whole word skips prefix hits so “foo” does not change “food”. Empty find is rejected so we do not loop forever. Leave replace empty to delete matches.

Regex Mode uses the same JavaScript RegExp engine as this browser. Patterns can include character classes, capturing groups, and replacement tokens like $1. Turning Match case off adds the i flag. Whole word wraps the pattern in a word-boundary group. Invalid patterns show an error instead of a half-applied result. Catastrophic backtracking can freeze the tab — keep patterns simple on large haystacks. Regex Tester is still the place to list every match without replacing.

Multiple Replacements apply pairs in order. Later pairs see the text after earlier ones, so cat→dog then dog→fox turns “cat and dog” into “fox and fox”. Cap is eight pairs. Find and replace fields are limited to 1,000 characters; the haystack is limited to 10,000. Upload a .txt, .md, .csv, .json, or .log file to fill the haystack locally — the file is read in this browser, not sent to a server.

Use it to rename a symbol in a pasted snippet, swap a domain in a list of URLs, strip a repeated prefix, or run a short cleanup without opening an editor. For seeing what changed as a diff, copy the result into Text Diff. All edits stay in this tab. We do not upload the haystack. Close the page to discard it. Bookmark this URL if you rerun the same replacements often; find, replace, and haystack never leave the tab.

How to find and replace

Pick a mode

Simple Replace is a literal string. Regex Mode is JavaScript RegExp. Multiple Replacements runs pairs in order.

Enter find, replace, and options

Match case, whole word, and Use regex apply to the current mode. Leave replace empty to delete matches.

Paste or upload the haystack

The result and replacement count update as you type. Find & Replace jumps to the result card. Upload a text file if that is faster than paste.

Copy locally

Copy the output when you are done. Nothing is uploaded. Use Regex Tester for a match list, Text Diff to see what changed.

Related tools

Find & Replace FAQ

Simple Replace is a literal String.indexOf walk. A dot matches a dot. “foo” inside “food” is replaced because “food” starts with “foo.” Match case is on by default. Overlapping matches are not rescanned. Empty find is rejected so the loop cannot run forever. Example: find foo, replace bar, haystack “foo foo food” becomes “bar bar bard” (three replacements). Regex Mode uses JavaScript RegExp in this browser — character classes, groups, and $1 work there. Invalid patterns show an error. Regex Tester remains the tool for listing every match without replacing.

Leave the replace field empty to splice matches out. Whole word skips prefix hits, so “foo” does not change “food.” Multiple Replacements applies up to eight pairs in order: later pairs see earlier edits (cat→dog then dog→fox turns “cat and dog” into “fox and fox”). After you copy the result, Text Diff can show what changed against the original haystack. You can paste or upload a local .txt, .md, .csv, .json, or .log file; the file is read in this tab.

No. Find, replace, uploaded files, and text stay in the browser. Close the tab to discard them. Bookmark this URL if you rerun the same replacements often — there is nothing extra to install.