Remove punctuation from text

Remove punctuation from text by stripping a fixed set of common marks: periods, commas, semicolons, colons, exclamation marks, question marks, quotes, brackets, slashes, and the rest of the standard ASCII set. A Keep field lets you whitelist any marks you want to retain. Letters, digits, and whitespace pass through. The transform runs in your browser. To strip just numbers instead, use remove numbers.

Input
Line 1:1 LF cloud_done Saved locally
Result Remove Punctuation
0 lines 0 chars

How punctuation stripping works

The strip set is fixed and matches the most common punctuation found in English copy: . , ; : ! ? ' " ( ) [ ] { } - _ * @ # $ % ^ &amp; + = ` ~ / \ | < >. The set also includes the en dash and em dash. Letters, digits, spaces, tabs, and line breaks are not in the set, so they always survive. Unicode punctuation outside this set (smart quotes, ellipsis, fullwidth marks) is not removed by default; paste it into find and replace if you need finer control.

The Keep field is a character-by-character whitelist. Type the marks you want to keep, no separator needed. Common patterns: ., to keep periods and commas in prose, . alone to keep decimal points, @-_. to keep email and URL punctuation. Whitelisted characters are checked one codepoint at a time, so multi-byte symbols work fine.

The pass walks the input one character at a time and writes to a new string, dropping any character that is in the strip set and not in your keep list. Output runs on every keystroke in your browser, no upload involved. To remove every non-letter character including numbers, follow up with remove numbers.

How to use remove punctuation from text

  1. 1Paste your text into the input panel on the left.
  2. 2Read the result on the right with the default punctuation set removed.
  3. 3Type marks you want to retain into the Keep field, no spaces needed.
  4. 4Tweak the keep list until the output matches what you want.
  5. 5Click Copy to take the cleaned text.

Keyboard shortcuts

Drive TextResult without touching the mouse.

Shortcut Action
Ctrl FOpen the find & replace panel inside the input Plus
Ctrl ZUndo the last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor Plus
EscClose find & replace, or exit fullscreen
Ctrl KOpen the command palette to jump to any tool Plus
Ctrl SSave current workflow draft Plus
Ctrl PRun a saved workflow Plus

What this tool actually does

Fixed strip set covers ASCII punctuation

The set hardcoded into the strip is .,;:!?'"()[]{}-_*@#$%^&amp;+=`~/\|<> plus en dash and em dash. Anything in this set is removed unless your keep list rescues it. The set is intentionally narrow so you can predict the output.

Keep field whitelists marks per character

The Keep field reads one character at a time. Type ., to keep periods and commas, . alone to keep decimal points in numbers, @-_. to keep email-friendly marks. There is no need for separators or quotes around the characters.

Letters, digits, and whitespace pass through

Anything outside the punctuation set is untouched: A through Z and a through z, 0 through 9, accented letters, CJK characters, emojis, spaces, tabs, and newlines. To remove digits as well, follow this with remove numbers.

Unicode punctuation outside the set survives

Smart quotes (", ", ', '), ellipsis (...), bullets (·), and other typographic marks are not in the strip set. They pass through untouched. Use find and replace if you need to target them specifically.

Walks the input one codepoint at a time

Implemented as a single linear pass with no global regex, so behaviour is predictable on tricky strings. The Keep lookup is a simple set check, so adding marks to the keep list does not slow the pass perceptibly.

Worked example

Default settings strip every mark in the set. Add ., to Keep if you want commas and periods to survive.

Input
Hello, world! Don't say "that's not it." (Why?)
Output
Hello world Dont say thats not it Why

Settings reference

Setting or behaviour Effect on output
Keep field (default empty) Whitelist of single characters to leave alone. ., keeps periods and commas, . alone keeps decimal points.
Default strip set Removes . , ; : ! ? ' " ( ) [ ] { } - _ * @ # $ % ^ &amp; + = ` ~ / \ | < > plus en dash and em dash.
Letters and digits Always pass through. Use remove numbers for digits.
Whitespace Always passes through. Use remove extra spaces if leftover gaps need tidying.
Smart quotes and Unicode punctuation Pass through. Run find and replace if you need to target them.
Emojis and accented letters Pass through. Use remove emoji or remove accents as separate passes.

FAQ

How do I keep periods and commas in my text?
Type ., into the Keep field, no separator. Both characters will then survive every pass while the rest of the punctuation set still gets stripped. To also keep apostrophes, use .,'.
Does it remove smart quotes and curly apostrophes?
No. Smart quotes (", ", ', ') and the ellipsis (...) are Unicode punctuation outside the default ASCII set, so they pass through. Use find and replace to target them, or paste through a smart-to-straight converter first.
Will it strip numbers as well?
No. Digits are not in the punctuation set. To remove them, run the result through remove numbers. Combine the two when you want only letters and spaces in your output.
What about hyphens inside compound words?
The hyphen is in the default strip set, so well-known becomes wellknown. To keep hyphens, add - to the Keep field. The same trick works for any character: drop it into Keep and the strip leaves it alone.
Does the input ever leave my browser?
No. The pass is a JavaScript loop over the input string, evaluated locally. Nothing uploads, nothing logs, no record of what you pasted exists on our servers.