Remove punctuation from text

Strip punctuation from any text and choose what stays: apostrophes, hyphens, decimals or sentence endings.

How it works

  1. Paste your text
  2. Choose what to keep
  3. Copy the result

What gets removed

To remove punctuation from text, paste it into the box: the tool deletes every mark that Unicode classes as punctuation and leaves letters, digits, spaces and line breaks alone. That covers the ASCII marks ! " # % & ' ( ) * , - . / : ; ? @ [ \ ] _ { } and also the marks of other writing systems, such as curly quotes, the em dash, the ellipsis character, the Spanish ¿ and ¡, and the Chinese and Japanese marks 、 。 「 」. Unicode groups these as dash, connector, open and close brackets, initial and final quotes, and other punctuation. The underscore is a connector mark, so it is removed too; add it to the keep list if you need it. Line breaks, tabs and spaces are never touched, and a Windows line break stays a Windows line break.

What the options keep

Four toggles protect marks that carry meaning. Keep apostrophes inside words leaves the mark in don't and it's but removes it from a quotation such as 'hello', because it needs a letter or digit on both sides. Keep hyphens inside words leaves well-known whole, while a spaced hyphen is removed. Keep . and , between digits leaves 3.50 and 1,000 whole. Keep sentence endings leaves a . ! ? or … that is followed by a space, a line break or the end of the text; a run such as ?! or ... is kept or dropped together. Always keep these characters takes any characters you type, such as @ # _, and protects them everywhere. The tool does not try to read abbreviations: with sentence endings on, the full stop in e.g. before a space is kept.

Symbols and replacing with a space

Unicode keeps symbols apart from punctuation. The dollar sign, plus, equals, less-than, greater-than, caret, backtick, vertical bar and tilde are symbols, and so are ©, °, ± and emoji. They stay unless you turn on Also remove symbols. If a mark was the only thing separating two words, as in end.Start or one,two, deleting it joins them into endStart and onetwo. Choose A space under Replace each removed mark with and the tool puts one space there, but only when the mark has a non-space character on both sides, so Hello, world becomes Hello world and not Hello world. Spaces that were already there are not merged; run Remove extra spaces afterwards if you want that.

Worked example and limits

The sample text is: Hello, world! It's a well-known fact (really): the ticket costs $3.50, don't you think? With the default options the result is: Hello world It's a well-known fact really the ticket costs $3.50 don't you think, with no final mark. Seven marks were removed: two commas, the exclamation mark, two brackets, the colon and the question mark. Four were kept: two apostrophes, the hyphen and the decimal point. The $ stays because it is a symbol. The table under the result lists each removed mark with its code point and count, up to the 20 most common. Text up to 1,000,000 characters is accepted. The work happens in your browser; the text is not uploaded or stored, only your option choices are remembered.

Frequently asked questions

How do I remove punctuation but keep apostrophes?

Leave Keep apostrophes inside words on, which is the default. The text Don't stop becomes Dont stop with it off and Don't stop with it on. A quote mark at the start or end of a word, as in 'stop', is still removed because it has no letter on one side.

Why are $, + and = still in my text?

They are symbols, not punctuation, in the Unicode classification. Turn on Also remove symbols to remove $ + = < > ^ ` | ~ and signs such as © and °. With it on, emoji are removed too, including their joiners and skin tones.

Why did two words join together?

The mark between them was their only separator, as in end.Start. Under Replace each removed mark with, choose A space and the result is end Start. The space is added only when the mark has a non-space character on both sides.

How do I remove commas and periods but keep the full stop at the end of each sentence?

Turn on Keep sentence endings. A . ! ? or … followed by a space, a line break or the end of the text stays, so Hi, there. Bye. becomes Hi there. Bye. while a full stop inside a.b is removed.

Does it remove punctuation in other languages?

Yes. It uses the Unicode punctuation class, so the curly quotes “ ”, the em dash —, the Spanish ¿ and ¡, the guillemets « » and the Chinese 、 。 「 」 marks are all removed. The Arabic decimal separator ٫ is a punctuation mark too and is removed even between digits.

Is my text uploaded?

No. The text is processed in your browser, in this tab, and no server receives it. Your option choices are saved in this browser; the text is not.