Remove punctuation

Strips punctuation and symbols, optionally keeping apostrophes and hyphens.

Press the button and every punctuation mark and symbol is removed, leaving letters, numbers and spaces. Double spaces created by the removal are collapsed so the text stays readable.

What counts as punctuation

This is where tools differ, and the difference matters. A simple implementation lists the punctuation on a US keyboard and removes those. That leaves behind everything your text actually contains once it has been through a word processor: curly quotes, em dashes, ellipsis characters, guillemets, the Spanish inverted question mark, Chinese full stops, and dozens more.

This tool removes anything Unicode classifies as punctuation or a symbol, whatever the language. Straight and curly quotes, all the dash widths, brackets of every kind, mathematical and currency symbols. What survives is letters in any alphabet, digits, and whitespace.

Keeping apostrophes and hyphens

The option exists because these two marks are often part of words rather than punctuation around them. Remove them and "don't" becomes "dont", "it's" becomes "its", and "state-of-the-art" becomes "stateoftheart" — three words fused into one nonsense token.

If you are preparing text for word counting, frequency analysis or a word cloud, keep them. If you are normalising text for comparison, where "dont" and "don't" should match, remove them. Both are legitimate; the wrong one silently skews your numbers.

What this is for

If you need to keep only letters and numbers, with no punctuation and optionally no spaces, the second button is stricter and covers that.

Doing it without this tool

Excel: nested SUBSTITUTE calls, one per mark. Around fifteen levels in you hit the nesting limit and still have not covered curly quotes.

Word: Find & Replace with wildcards, searching [!A-Za-z0-9 ]. It works for English and deletes accented letters along with the punctuation, which is rarely intended.

Command line: tr -d '[:punct:]' < file.txt. The POSIX punct class covers ASCII only, so curly quotes and em dashes survive.

Python: s.translate(str.maketrans('', '', string.punctuation)) — same ASCII-only limitation. The Unicode-aware version is re.sub(r'[\p{P}\p{S}]', '', s) with the regex module, since the standard re module does not support those categories.

Try:
0Words
0Characters
0No spaces
0Sentences
0Paragraphs
0Lines
0Pages
0Reading
0Speaking

Runs entirely in your browser. Your text is never uploaded — open DevTools, Network tab, and you will see zero requests while you use this tool.

How to use it

  1. Paste your text into the box.
  2. Decide whether apostrophes and hyphens should stay — tick the option if your text has contractions or hyphenated words.
  3. Press "Remove punctuation".
  4. Use "Keep letters and numbers only" instead if you also want symbols and everything else gone.

Related tools

Remove line breaksTurns text broken across many lines back into a clean paragraph.Remove stop wordsStrips common English filler words and leaves the words that carry meaning.Remove special charactersKeeps letters, numbers and spaces — everything else goes.Remove duplicate wordsDeletes repeated words and keeps the first of each. Different from removing…Dice rollerRoll a d6, a d20, two d6 or percentile dice. Sums included.PDF text breaksThe file has no paragraphs to give you. Here is what it does have, and how to…What is a URL slugThree to five words, lowercase, hyphens, no dates. And why changing it later…

See all text tools →

Frequently asked questions

Does it remove curly quotes and em dashes?

Yes. It removes anything Unicode classifies as punctuation or a symbol, not just the marks on a US keyboard, so smart quotes, ellipsis characters and every dash width are handled.

Should I keep apostrophes?

Keep them if you are counting or analysing words, otherwise the contraction don’t becomes "dont" and hyphenated words fuse together. Remove them if you are normalising text so that punctuation differences stop mattering in comparisons.

Does it delete accented or non-Latin letters?

No. Letters in every alphabet are preserved, including accented Latin, Cyrillic, Greek and CJK characters. Only punctuation and symbols are removed.

What happens to the spaces left behind?

Runs of two or more spaces created by the removal are collapsed to one, so the text does not end up with visible gaps.

Are emoji removed?

Yes, emoji are symbols and go with the rest. If that is all you want to remove, the remove emojis tool leaves everything else alone.