What it does
Turn text into a table: each capture group becomes a column and each match a row, with the lines that did not match listed separately.
How to use it
- Write a regex with one capture group per field.
- Paste the text; choose line by line or whole text.
- Check the unmatched lines, then export JSON, CSV or TXT.
Verified example
Example
Text "id=TX-00057 status=ok"
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+) Result: "id=TX-00057", "status=ok"
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+) Result: "id=TX-00057", "status=ok"
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+) Result: "id=TX-00057", "status=ok"
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+) Result: "id=TX-00057", "status=ok"
Counterexample
Text "=missing"
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+) Result: no match
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+) Result: no match
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+) Result: no match
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+) Result: no match
Recorded by running fixture FX-R05 on : rp.js@1 on Node v24.21.0 (V8), v24.21.0, CPython 3.14.2 (Pyodide 314.0.7), PCRE2 10.48, go1.27.1. JavaScript results come from the rp.js@1 core on Node’s V8; your browser runs the same core.
Engines
- Capture numbering is the same in all four engines; named-group syntax is not (see Named groups).
Limits
- CSV export guards spreadsheet formulas by default and says how many cells it changed.
- An incomplete run exports only after you confirm, and the file name says .partial.