Normalize list separators

Normalize list separators by replacing any mix of common delimiters (`,`, `;`, `|`, tab) with a single consistent one. Default target is `, ` (comma + space). Uses the same op as Replace in Regex mode, pre-configured with the separator-matching pattern.

Input
Ready
Output
Live

A separator-normalizing Replace

Default Find pattern is `[,;|\t]\s*` (regex): any single character from the set `,`, `;`, `|`, or tab, followed by any amount of optional whitespace. Default Replace is `, ` - one comma plus one space. The result: any mix of those delimiters collapses to the uniform target.

Per-line operation. A single line with mixed separators gets normalized; a list of lines each with internal separators works too (the Replace scans each line independently).

Override Find to match a different separator set. For example, `[/\\]\s*` to normalize slashes and backslashes. Override Replace to pick a different target separator (tab, pipe, ` | `).

How to use normalize list separators

  1. 1Paste your list into the input panel
  2. 2Default Find pattern matches `,`, `;`, `|`, tab + optional whitespace
  3. 3Default Replace is `, ` (comma + space)
  4. 4Override Find / Replace as needed; Regex mode is on by default
  5. 5For one-character-only separator swaps, see Change separator

Keyboard shortcuts

Drive ListShift without touching the mouse.

Shortcut Action
Ctrl ZUndo last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor
EscExit fullscreen
Ctrl KOpen the command palette to jump to any tool
Ctrl SSave current pipeline draft Plus
Ctrl PRun a saved pipeline Plus

What this tool actually does

Pre-configured Regex-mode Replace for separator characters.

Default char set: `, ; | tab`

The regex `[,;|\t]` matches any one of those four characters. The `\s*` after it consumes trailing whitespace, so `; ` collapses cleanly to `, ` (no double-space).

Per-line scan

A line like `a; b , c` is scanned left-to-right, every match of the pattern is replaced. Lines without separators pass through unchanged.

Extend or narrow the char set

Edit Find to add or remove delimiter characters. For example, `[,;|/\\]\s*` adds forward slash and backslash to the set.

Change the target separator

Edit Replace to `\t` for tab-separated, `|` for pipe-separated, ` | ` for display-friendly pipes. Literal text only - no regex capture groups needed.

Invalid regex shows an error

If your custom Find pattern is malformed, the status bar reports the syntax error and the input is emitted unchanged. No silent data loss.

Worked example

Mixed separators (`;`, `,`, `|`) collapse to a uniform `, `.

Input
apple; banana , orange | grape
red , green ; blue|yellow
Output
apple, banana, orange, grape
red, green, blue, yellow

Settings reference

How each option shapes the output using the sample above.

Setting What it does Effect on the sample
Find: `[,;|\t]\s*` (default), Replace: `, ` (default), Regex: on Matches any of `,`, `;`, `|`, tab + trailing whitespace; replaces with `, ` `apple; banana , orange | grape` → `apple, banana, orange, grape`
Replace: ` | ` Same matching, replaced with pipe-surrounded-by-spaces `apple; banana` → `apple | banana`
Find: `[,;|/]\s*` Adds forward-slash to the char set `a/b; c` also normalizes
Regex: off, Find: `, ` Literal match - only plain `, ` pairs replaced Other separators like `;` pass through
Invalid regex Status bar reports error; input unchanged No silent failures

FAQ

Which separator characters does the default handle?
Four: comma, semicolon, pipe, tab. Edit the Find pattern (it is a regex character class) to add or remove characters.
What if my input uses Unicode separators like `•` or `→`?
They are not in the default set. Add them to the Find character class: `[,;|\t•→]\s*`. Regex character classes accept any literal character.
How do I normalize to tabs or pipes instead of commas?
Type ` | ` (or any literal string) into the Replace field. For a real tab character, type `\t` - the op interprets the escape sequences `\t`, `\n`, `\r`, and `\\` in the Replace field so you do not have to paste raw control characters.
How is this different from Change separator?
Change separator is tuned for swapping ONE character for another (literal mode, e.g. `,` → `\t`). This tool uses regex by default to normalize a SET of possible separators down to one target.
Does it trim whitespace around the separator?
Yes - the `\s*` in the default Find pattern consumes trailing whitespace, so `; ` collapses cleanly to `, ` without leaving a double space.