Global non-alphanumeric scrub, with a trim-only fallback
Default Scope is "Everywhere in each line" - every character from the Chars set is stripped from every position. The op compiles a regex `[chars]` with the global flag and runs one pass per line, so `pr!ic$e: 19.99` becomes `price1999` and `em@il: [email protected]` becomes `emilbobtestcom`. Characters to remove defaults to all ASCII punctuation plus space and tab.
Switch Scope to "Line ends only" to get trim-style behaviour - runs of the same character class stripped from line starts and/or ends only, with mid-line characters untouched. In that mode the Side option (Both / Start / End) picks which end(s) to strip. Use trim when your noise is leading `>> ` or trailing `—–` and the in-line content is already clean.
Customise Characters to remove to preserve specific characters: delete the hyphen from the default set to keep hyphens in your output; delete the dot to keep decimals. The field is a character class, so no regex escaping is needed for most punctuation. Leave blank to fall back to whitespace-only trimming (ignores Scope in that case).
How to use remove non-alphanumeric characters from a list
- 1Paste your list into the input panel
- 2Default Scope is "Everywhere in each line" - every punctuation / whitespace character is stripped in one pass
- 3Switch Scope to "Line ends only" if you only want to clean up leading/trailing noise
- 4Customise Characters to remove to keep specific punctuation (e.g. delete `-` and `.` from the default set to keep hyphens and dots)
- 5Copy or download the cleaned list from the output panel
Keyboard shortcuts
Drive ListShift without touching the mouse.
What this tool actually does
Global character-class removal by default; switchable to a trim-only mode.
Everywhere scope (default)
Strips every character in the set from every position in each line. `pr!ic$e: 19.99` → `price1999`. `[email protected]!` → `emailtestcom`. One pass per line using a global-flag regex.
Line-ends scope (trim)
Switch Scope to "Line ends only" and the op behaves like trim: leading/trailing runs of the char class are stripped, mid-line characters stay. Pair with the Side option to target only start, only end, or both.
Full ASCII punctuation set pre-loaded
Default Chars is every ASCII punctuation character plus space and tab: `!@#$%^&*()_+-=[]{};\':"\|,.<>?/~` + whitespace. Covers the vast majority of "strip symbols" cases without any configuration.
Edit the character set to preserve specific punctuation
Delete characters from the Chars field to keep them in the output. Common cases: keep hyphens (delete `-`), keep decimals (delete `.`), keep URL slashes (delete `/`). The field is a character class — paste characters in verbatim.
ASCII-only by default
Default Chars does not include Unicode symbols (smart quotes, em dashes, bullets). Paste them into the field explicitly if your input contains them, or run Standardize punctuation first to normalise them to ASCII.
Worked example
Default `Everywhere` scope with the full ASCII punctuation set. Symbols, colons, spaces, parentheses, decimals, `@`, `#`, `-` - all stripped from every position, leaving only alphanumerics.
pr!ic$e: 19.99 em@il: [email protected] ph#one: (555) 123-4567
price1999 emailbobtestcom phone5551234567
Settings reference
How each option shapes the output using the sample above.
| Setting | What it does | Effect on the sample |
|---|---|---|
| Scope: Everywhere (default) | Removes every char in the set from every position in each line | `price1999` / `emailbobtestcom` / `phone5551234567` |
| Scope: Line ends only | Trim-style: only leading/trailing runs of the char class are stripped; mid-line preserved | No change on this sample - every line starts and ends with alphanumerics. On an input like `!!pr!ic$e: 19.99!!` this mode would yield `pr!ic$e: 19.99` (trim the outer `!!` only) |
| Side: Both / Start / End | Only applies when Scope is "Line ends only"; picks which end(s) to trim | Inert when Scope is Everywhere |
| Characters to remove: default | All ASCII punctuation + space + tab | Every non-alphanumeric ASCII character in the sample is stripped |
| Characters to remove: custom (e.g. delete `-` and `.` from the set) | Preserves hyphens and dots in the output | `price19.99` / `emilbobtest.com` / `phone555123-4567` (decimal in 19.99, dot in test.com, hyphen in 123-4567 all kept; every other punctuation still stripped) |