Find and Replace
Free find-and-replace tool. Replace text across long documents with plain matching, case-insensitive options, or full regex — runs entirely in your browser.
Quick answer
Plain find-and-replace looks for an exact substring match. Case-insensitive matches ignore upper/lower differences. Regex matches use a pattern language to match variable text — useful for things like 'replace any phone number with a placeholder.'
Find & Replace
How it works
Replaces every occurrence of the "find" string with the "replace" string. Case-sensitive by default, with an optional case-insensitive mode and an optional regex mode for pattern matching.
When to use it
Cleaning up data exports, batch-renaming things in a list, fixing typos across a document, removing unwanted characters, or transforming text between formats. Faster than opening a code editor for one-off jobs.
Common mistakes
Forgetting to escape regex special characters when using regex mode — `(`, `)`, `.`, `?`, etc. need backslashes. Also: not previewing the result before copying out — accidentally replacing a substring inside a longer word can break things.
How find-and-replace works
The simplest version is exact-substring matching: scan the input for every occurrence of the search string and replace it. Case-insensitive matching downcases both the search string and each candidate before comparing. Regex (regular expression) matching introduces a pattern language: \d+ matches any sequence of digits, [A-Z] matches any uppercase letter, (foo|bar) matches 'foo' or 'bar'. Replacement strings can reference captured groups — useful for reformatting structured text like dates ('2024-01-15' to '01/15/2024').
When to use it
Cleaning up scraped or copy-pasted text where every instance of a placeholder needs the same replacement. Renaming variables in code without a full IDE. Reformatting CSV exports where a delimiter needs to change. Stripping unwanted formatting like Markdown emphasis or inline links. Bulk-replacing tracking parameters in a list of URLs.
Common mistakes
- Forgetting word boundaries. Replacing 'cat' with 'dog' in plain mode also replaces 'concatenate' → 'condogenate.' Use regex with
\bcat\bfor whole-word matching. - Not escaping regex metacharacters. Symbols like
.,*,(,+, and?have special meanings in regex. To match them literally, escape with a backslash. - Replacing partway through tags. Find-and-replacing inside HTML or JSON without parsing first is fragile. A tool that understands the structure (a real HTML parser, jq for JSON) is safer.
Frequently asked questions
How do I replace text using regex?
Toggle the regex option, enter your pattern in the find field (e.g. \d+ for digit sequences), and use capture groups in the replace field (e.g. $1 or \1). The browser's RegExp engine drives matching — JavaScript regex syntax applies.
Is the find-and-replace case-sensitive?
By default yes — 'Cat' and 'cat' are distinct. Toggle the case-insensitive option to match across cases. The tool runs entirely in your browser, so even sensitive text never leaves your device.
Can I find and replace across multiple lines?
Yes. The default mode matches across line boundaries since the input is a single string. For regex patterns, use the s flag (or [\s\S]) to make . match newlines too.