Replace text with multiple rules at once — supports regex, case sensitivity, and whole-word matching.
This is a browser-based version of the Ctrl+H dialog you know from Word or a code editor, with one difference that matters for repetitive work: you can stack several find/replace rules and apply them all in a single pass. Each rule runs in order, so the output of rule 1 becomes the input for rule 2 — handy when one substitution depends on a previous one having already happened. Leave a Replace with field empty to delete every match instead of swapping it. Beyond literal text, you can switch on regular expressions, case-sensitive matching, or whole-word-only matching.
$1-style backreferences.These work once Use regex is enabled. The third column shows the replacement field, where $1, $2… refer to the parenthesised capture groups in the pattern.
| Find (regex) | What it matches | Replace with |
|---|---|---|
| (\d{2})/(\d{2})/(\d{4}) | A date like 06/15/2026 captured in three groups | $3-$1-$2 → reorders it to 2026-06-15 |
| (\w+)@(\w+) | A local part and domain stem of an email | $1 [at] $2 → obfuscates addresses in a list |
| \s{2,} | Two or more consecutive whitespace characters | A single space → collapses runs left by PDF copy-paste |
| ^\s* | Leading whitespace at the start of each line | (empty) → left-trims an indented block |
| (https?)://(\S+) | An http or https URL | $2 → drops the scheme from a link list |
$1 work in the replacement?When regex is on, any part of the pattern you wrap in parentheses becomes a numbered capture group. In the replacement field you can paste those captured pieces back with $1 for the first group, $2 for the second, and so on. That is what makes reordering possible — a pattern of (\d{2})/(\d{2})/(\d{4}) with replacement $3-$1-$2 rewrites US-style dates into ISO order without you retyping any digits.
Sequentially, top to bottom. The first rule transforms the whole text, then the second rule runs on that already-modified result, and so on. This matters when rules overlap: if rule 1 turns color into colour and rule 2 looks for colour, rule 2 will catch the output of rule 1. Reorder the rows in the panel if a later rule is accidentally undoing an earlier one.
A plain search matches your term anywhere, including inside longer words — searching cat would also hit category and concatenate. With whole-word matching on, the term only counts when it is bounded by non-word characters (spaces, punctuation, line ends), so cat matches the standalone word and cat. but leaves the longer words untouched. Internally this wraps your term in \b word boundaries.
Every match, always — there is no "first occurrence only" toggle. Replacement runs globally across the entire input, and the counter beneath the box reports the exact number of substitutions so you can sanity-check before copying. If you only want to change one specific instance, isolate that line first or make the surrounding context part of your search term.
The tool surfaces invalid patterns in the red message under the result box rather than silently failing. The usual causes are an unbalanced bracket or parenthesis, or a special character (., *, +, ?, (, [) used as a literal without escaping it as \., \*, and so on. If you actually want those characters treated literally, turn regex off — in plain mode every character is matched exactly as typed.