Free Find and Replace Tool With Regex, Case-Insensitive & Whole-Word Modes
Paste text, type what to find, type what to replace it with — get the result instantly. Optional regex mode with capture-group backreferences ($1,$2), case-insensitive, whole-word, multiline. Live match count. 100% client-side.
Hello there! Contact us at [email protected], [email protected], or [email protected].
We will reply within 24 hours. Multiple spaces need fixing.
#feedback #toolk #2026 🚀Literal or Regex
Toggle between plain-text find (with whole-word and case-insensitive options) and full ECMAScript regex with capture-group backreferences ($1, $2 in the replacement).
Backreferences Work
In regex mode, capture groups in the find pattern (parentheses) can be referenced as $1, $2 in the replacement — swap columns, restructure dates, normalize casing.
Live Match Count
See exactly how many matches will be replaced before confirming. Recipe presets demonstrate common patterns (strip emoji, mask emails, collapse spaces).
100% Client-Side
All find-and-replace runs in your browser via native String.replace. Text never leaves the page — safe for logs, configs, or any sensitive content.
Find. Replace. Transform Text in Bulk.
Every text editor has find-and-replace, but most are tied to a specific file you have open. When you want to clean a paste buffer — anonymize an email list, strip emoji from imported text, normalize date formats, swap CSV columns, transform variable names — opening a full editor is overkill. Our Free Find and Replace handles those bulk text transformations in your browser, with literal-text and regex modes, capture-group backreferences for restructuring, and recipe presets that cover the most common patterns. Everything stays client-side.
Pair this with our Regex Tester (develop your pattern before applying), Text Sorter (sort and dedupe lines around your replace), Diff Checker (verify changes vs original), and the Case Converter (uppercase / lowercase / title-case transformations as a complement).
Syntax Reference
| Feature | Syntax / Toggle | Notes |
|---|---|---|
| Plain text (literal mode) | find: cat → replace: dog | Replaces every occurrence of the literal string. Use whole-word toggle to avoid partial matches. |
| Case-insensitive | + Aa toggle | Adds the "i" flag — "Apple", "APPLE", "apple" all match the same pattern. |
| Whole word only | + "Wb" toggle (non-regex mode) | Wraps the literal pattern in \b boundaries; matches "cat" but not "category". |
| Regex character class | find: [aeiou] → replace: * | Replaces every vowel with an asterisk. Square brackets define a set. |
| Regex backreference | find: (\w+) (\w+) → replace: $2 $1 | Captures two words with parentheses, swaps them. $1, $2 reference the captures. |
| Regex anchors | find: ^foo → replace: bar (multiline) | "^" matches line start when multiline mode is on; otherwise only the very start. |
| Regex quantifiers | find: \d{3,5} | Matches 3 to 5 digits. {n,m} = at least n, at most m occurrences. |
Five Practical Find-and-Replace Recipes
1. Anonymize Email Lists
find: \b[A-Za-z0-9._%+-]+@\S+\b → replace: [email]
Replace every email with [email] before sharing logs externally. Regex mode on.
2. Collapse Duplicate Spaces
find: " +" → replace: " "
Normalize whitespace from scraped or copy-pasted content. Regex mode on.
3. Reorder Date Formats
find: (\d4)-(\d2)-(\d2) → replace: $3/$2/$1
Convert ISO 8601 dates to US format using capture-group backreferences.
4. Strip Trailing Whitespace
find: \s+$ → replace: (empty) · multiline on
Clean trailing whitespace from every line of pasted source code.
Four Pitfalls to Watch For
1. Greedy Quantifiers Match Too Much
In regex, .* is greedy — it matches as much as possible. For HTML-like content, use .*? (non-greedy) instead. Otherwise <b>hello</b> world <b>again</b> collapses across both tags.
2. Special Characters Need Escaping
In regex mode, . matches any character. To match a literal period, write \. — same for ( ) [ ] * + ? | ^ $ \\. Literal mode handles this automatically.
3. Substring vs Word Match
Searching "cat" matches inside "category", "scattered", "duplicate". Turn on Whole Word (literal mode) or add \b boundaries (regex mode) when you want word-only matches.
4. Replace With $1 Without Capture
$1 in the replacement is meaningless if your find pattern has no parentheses. The output will contain literal "$1" characters. Add ( ) around the part of the pattern you want to capture.