Photoshop's Edit menu includes a Find and Replace feature that searches text layers in the active document and lets you swap one literal string for another, with optional case sensitivity, direction (forward or backward through the layer stack), whole-word matching, and a "Search All Layers" toggle that restricts the sweep to the active layer or expands it across every text layer in the file. It is a strict literal matcher: it has no regular-expression engine, no capture groups, and no replacement templates, so punctuation such as periods, asterisks, brackets, parentheses, dollar signs, and backslashes match themselves with no escaping. That is helpful when the strings you are editing look like product SKUs, configuration tokens, file paths, or repeated design-system labels, because the result is exactly what you typed and nothing else. When you need to prepare or transform a large block of text before it ever reaches Photoshop — for instance, a list of layer names, a code excerpt you plan to paste into a smart object, or several paragraphs that will sit across multiple text layers — you can do the literal matching in a browser-based find and replace tool first, then drop the cleaned text into Photoshop with confidence.

What Photoshop's Built-In Find and Replace Can and Cannot Do
Photoshop's native Find and Replace lives under Edit > Find and Replace in current versions, with the older label Edit > Find and Replace Text still appearing in older builds. The dialog exposes three text fields and a compact set of toggles. The Find field takes the exact string to look for; the Change To field takes its replacement; the Search dropdown lists four well-defined options — Forward, Backward, All Layers, and Whole Word Only — and a Case Sensitive checkbox sits beside it. There is no preview of how many matches exist, no way to count before committing, no undo across the dialog and the document, and no support for empty-find or empty-replace edge cases beyond what the dialog silently does.
For a designer working on a single PSD with a handful of text layers, that is usually enough. For a designer who has copied a long block of text from a content brief, a CSV column, a code file, or a list of layer names and needs to swap a recurring term before pasting it into a Photoshop layer, the dialog is the wrong shape: there is nothing to paste into it outside of a document, and it cannot act on a string that has not yet reached a layer. That is the gap a browser-based literal tool fills, and it is also why "find and replace text in Photoshop" sometimes points designers toward a workflow that starts outside Photoshop rather than inside it.
How to Use Find and Replace Inside a Photoshop Document
These steps cover the in-document workflow, which is the literal match the keyword promises.
- Open the PSD, PSB, or layered TIFF you want to edit, and make sure the Layers panel is visible so you can see which text layer is active.
- Choose Edit > Find and Replace (or Edit > Find and Replace Text in older releases) from the menu bar.
- Type the exact string you want to change in the Find field. The matcher is literal, so characters such as *, $, (, ), [, ], and \ match themselves with no escaping required.
- Type the replacement string in the Change To field. Leave it empty to delete each matched occurrence.
- Pick a Search direction: Forward scans down the text from the current insertion point, and Backward scans up. If you do not know where your cursor sits, choose Forward and place the cursor at the very top of the layer before opening the dialog.
- Tick Search All Layers if you want the dialog to touch every text layer in the document. Leave it unticked to restrict the sweep to the active layer only.
- Tick Whole Word Only if you want to avoid replacing the term inside longer words — for example, finding "art" only when it is a standalone word and not inside "smart".
- Tick Case Sensitive if "Brand" and "brand" should be treated as distinct. Leave it unticked for a case-insensitive sweep across both forms.
- Click Find Next to step through one match at a time and confirm each replacement manually, or click Change All to replace every match in the current scope in one pass.
- Close the dialog, press Ctrl/Cmd+S, and save the file. Photoshop does not keep a single undo across the dialog and the document, so a backup before bulk replacements is worth the small effort.
The replacement count that Change All produces is not surfaced in the dialog; the only confirmation is the absence of further matches. That is one reason designers often want to count first, then run, then verify — a habit the browser tool encourages because it explicitly reports the number of replacements.
Preparing Text for Photoshop in the Browser
When the text you need to edit is not yet inside Photoshop — it is in a content brief, a Slack thread, a CSV column, a code file, or a list of layer names — the practical move is to clean it up first and then paste the result. The Find and Replace Text tool on Lizely is built for exactly this kind of literal, predictable work, with no regular-expression surprises and no upload step.
- Paste or type the source text into the source field. The tool accepts up to one million characters, which is enough for almost any text block a designer is preparing for Photoshop.
- Enter the exact find string in the Find field. The matcher is literal, so punctuation matches itself and there is no need to escape special characters.
- Enter the replacement string in the Replace field. Leave it empty if you want to delete each match.
- Choose Case Sensitive or Case Insensitive. Case Insensitive uses an English-locale lowercase comparison, which is reliable for ordinary prose and most product copy.
- Choose Replace First to change only the earliest match and leave the rest of the text untouched, or Replace All to change every non-overlapping match in one pass.
- Click Run. The tool reports the exact number of replacements made and shows the transformed text in a preview pane.
- Copy the preview back into Photoshop. Source whitespace, tabs, and line breaks remain unless they were part of a matched string, so the layout you see in the preview is the layout you will paste.
The whole operation runs locally in the browser. Nothing is uploaded to a server, which matters when the text contains unpublished product copy, unreleased brand names, or anything under NDA. For broader placeholder workflows, the Photoshop lorem ipsum workflow pairs naturally with literal find and replace when you want consistent filler copy across many layers.
Common Patterns Where the Browser Tool Saves Time
Three patterns come up over and over in design and front-end work, and each one is a poor fit for Photoshop's in-document dialog.
| Workflow | Why Photoshop's dialog is awkward | Why the browser tool fits |
|---|---|---|
| Renaming tokens across a block of placeholder copy before it reaches a layer | The dialog only operates inside the open document, not on text you are about to paste in | Literal matching with no regex means tokens such as {color}, $brand, and %%sku%% are safe to find and replace without escaping |
| Swapping a repeated phrase across many short strings in one pass | Change All runs across layers but only inside one PSD, and only after the strings are already inside layers | The browser tool handles a long pasted string in one run, with a count you can verify before pasting anything back |
| Deleting a delimiter such as a trailing pipe | or a label prefix | There is no separate "delete" button, and the only way to delete is to leave the replacement field empty and remember the behavior | Empty replacement is a documented, first-class option that behaves as literal deletion |
A worked example makes the non-overlapping behavior concrete. If the pasted source contains aaaa and the find string is aa with a replacement of X, Replace All produces XX and reports a count of 2. The first match consumes positions zero and one, and the next match starts at position two; the tool never loops on text it just inserted, so aaaa can never become XXa or XXX. That predictable advancement is the same shape used by JavaScript's String.prototype.indexOf followed by a slice — find the next match, append the untouched prefix plus the replacement, then jump past the consumed length.
Limits and Behavior to Know Before You Run
Several behaviors are easy to miss and worth pinning down before you trust the output.
- An empty find value is rejected, because matching an empty string at every boundary would be ambiguous and would replace nothing meaningful.
- An empty replacement is allowed and acts as literal deletion; there is no separate "delete" button to look for.
- Replace All uses non-overlapping matches, so inserted text is never re-searched. This is documented behavior, not a bug, and it is exactly what you want for ordinary string cleanup.
- A find string longer than the remaining text returns zero replacements, which is the same as saying "not found" and returns the original text unchanged.
- Editing any control clears the old result, so stale output cannot be confused with the current settings. The unchanged source remains available above for another run.
- The output preview preserves whitespace but allows long lines to wrap visually; the wrap does not insert newline characters in the underlying result.
- Case-insensitive mode uses English-locale lowercase comparison; it does not perform accent folding, Unicode normalization, fuzzy matching, or locale-specific collation. Searching for "cafe" case-insensitively matches "cafe" and "CAFE" but not "café".
- The tool does not store history, send analytics about the source, or open multiple tabs. Copy the preview through the browser or continue with another dedicated text tool.
For line-level affixes such as adding "SKU-" to every layer name, the Add Prefix and Suffix tool is the next step after find and replace. For counting matches before modification — particularly when you also need the original zero-based positions, which change once replacements begin — Count Occurrences is the safer first move. The tool described here is built for predictable literal work: paste text, set find and replace, choose case sensitivity, choose first or all, and copy the result. Anything more advanced belongs in a separate interface with explicit safety documentation.