什么是 文本净化工具?
Text copied out of a PDF, a website, or an email arrives carrying things you cannot see: doubled spaces, hard line breaks mid-sentence, HTML left over from the page, smart quotes, zero-width characters. This tool removes the ones you select and leaves the rest alone.
The one thing worth knowing before you start: the operations run in a fixed order, not the order you tick them. HTML handling first, then links, then character substitutions, then duplicate removal, then per-line trimming, then writing fixes, then whitespace last. That order is why some combinations surprise people, and the tips below cover the ones that actually bite.
Every option is off by default, so nothing happens to your text until you ask for it. The whole pipeline runs in the browser — there is no upload step and no copy of your text on our side.
使用场景
Text pasted out of a PDF
PDFs store lines, not paragraphs, so copied text arrives with a hard break at the end of every visual line. Turn on line-breaks-to-spaces to rejoin it, then collapse multiple spaces. Do those together — rejoining first leaves double spaces wherever a line ended in one, and whitespace runs last, which is exactly what you want here.
Scraped or rich-text HTML
Strip tags removes everything between angle brackets. The separate id, class, and style removers exist for when you want to keep the markup but drop the attribute noise — if you are stripping tags anyway, those three are redundant.
Cleaning a list before import
Remove duplicate lines compares lines with their surrounding whitespace ignored and keeps the first occurrence of each. Blank lines are always kept, so the shape of a spaced-out list survives deduplication.
Normalising text for comparison
When two strings should match but do not, the difference is usually invisible. NFKC normalisation folds compatibility variants together, accent removal reduces é to e, and the replacement-character option clears the  marks left by a bad decode.
示例
Removing duplicate lines
Lines are compared with leading and trailing whitespace ignored, and the first occurrence is the one kept. Blank lines are exempt and always survive.
apple
apple
banana
apple apple
banana Collapsing repeated words
Matching is case-insensitive but the replacement keeps whichever form appeared first, so a capitalised word at the start of a sentence stays capitalised.
The the cat sat sat down The cat sat down Stripping accents
Text is decomposed and the combining marks are dropped, so the base letter survives. This is not the same as the non-ASCII option, which would delete the character outright rather than simplifying it.
café naïve cafe naive 文本净化工具 对比 find-and-replace in a text editor
Anything here can be done with regular expressions in a capable editor. The trade is speed and recall against control.
| 功能 | Toolorah | find-and-replace in a text editor |
|---|---|---|
| Invisible characters you did not know to look for | Removed by name | You have to know the code point first |
| Combining several cleanups | Tick boxes, one pass | One search-replace per rule |
| Exact control over a specific pattern | Limited to the options listed | Full regular expressions |
| Reproducing the same clean next week | Re-tick the same boxes | Saved macro, if you wrote one |
| Where the text goes | Stays in the browser | Stays on your machine |
文本净化工具 使用技巧
- Order is fixed, so linkify-URLs then remove-punctuation destroys the links it just made: the anchor tags are built in stage two and punctuation removal runs in stage three, taking the angle brackets, slashes and quotes with it. Pick one.
- Remove non-ASCII is much broader than it sounds. It deletes every character above U+007F — all accented letters, all CJK, all emoji, every curly quote and dash. Use accent removal or NFKC normalisation if simplification rather than deletion is what you meant.
- Trim characters per line slices a fixed number off each line regardless of what is there. It counts characters, not indentation, so a line with four leading spaces and a line with a tab lose different amounts of visible whitespace.
- Collapse-all-line-breaks overrides the other line-break options rather than combining with them. If it is on, remove-blank-lines and collapse-multiple-blank-lines do nothing, because there are no line breaks left by the time they would run.
- Shorthand expansion is case-insensitive and matches whole words only, so it will not touch letters inside a longer word — but it will expand a shorthand that happens to appear in a quotation you meant to leave alone.
常见问题解答
Does the order I tick the options matter?
No, and that is the thing most worth knowing. The pipeline runs in a fixed sequence: HTML decoding and tag removal, then link handling, then character-level substitutions, then duplicate removal, then per-line trimming, then writing fixes, then all whitespace handling last. Ticking boxes in a different order changes nothing. If a combination is not doing what you expect, it is almost always because one stage is undoing the work of an earlier one.
How does duplicate line removal decide what is a duplicate?
Each line is compared with its leading and trailing whitespace ignored, so " apple" and "apple" are the same line. The first occurrence is kept and later ones are dropped. Blank lines are never treated as duplicates and always survive, which means a list separated by blank lines keeps its spacing.
What is the difference between removing accents and removing non-ASCII?
Accent removal simplifies: é becomes e, ü becomes u, and the word stays readable. Remove non-ASCII deletes: every character above U+007F disappears, so é becomes nothing at all and a line of Chinese becomes empty. If you want text that still reads, use accent removal.
Why did stripping punctuation break my links?
Because whichever stage runs later wins, and punctuation removal runs after link creation. The anchor tags built in the link stage are made of angle brackets, quotes, slashes and colons, all of which the punctuation stage removes. The two options cannot be used together for this reason.
Is my text uploaded anywhere?
No. Every operation is a string transformation running in the page. Nothing is sent, nothing is stored, and closing the tab discards it. You can watch the network tab while you type and confirm that nothing leaves the browser.
Can I undo a clean?
The input box keeps your original text — the cleaned version appears separately rather than overwriting what you pasted. Turning an option back off recomputes the output from the original input, so nothing is destroyed until you copy the result somewhere and discard the source.