Parsing
Regex Extract
Splits text into new columns with a regular expression: each capture group becomes a column after the one it reads.
When to use it
Use it when a code, reference or line of text packs several values together — INV-2024-0055 → year and number — and Split Column cannot cut it on one delimiter.
In a pipeline
File InputRegex ExtractExport CSV
Settings
| Setting | Type | Required | Default or hint |
|---|---|---|---|
| Column | select | Yes | Select column… |
| Pattern | text | Yes | e.g. INV-(?<Year>\d{4})-(?<Number>\d+) |
| Ignore case | checkbox | — | false |
| Groups (JSON, optional) | textarea | — | [{"name":"Year","index":1},{"name":"Number","index":2}] |
Example
Year and number from invoice codes
- Column=Invoice
- Pattern=INV-(?<Year>\d{4})-(?<Number>\d+)
| Invoice |
|---|
| INV-2024-0055 |
| INV-2025-0102 |
| CREDIT-7 |
| Invoice | Year | Number |
|---|---|---|
| INV-2024-0055 | 2024 | 0055 |
| INV-2025-0102 | 2025 | 0102 |
| CREDIT-7 | — | — |
CREDIT-7 does not match, so its new columns are blank and the note counts it.
Worth knowing
- Named groups ((?<Year>…)) name their columns. Otherwise numbered groups become Group 1, Group 2…, and a pattern without groups gives one Match column.
- Groups (JSON) renames or picks groups: [{"name":"Year","index":1}]; index 0 is the whole match. Each needs a name or an index.
- The first match in each cell is used. Values are text — leading zeros stay.
- The new column names are known from the settings, so downstream pickers show them straight away.