Regex Extractor

Pull fields out of text with capture groups and export them as JSON, CSV or TXT; unmatched lines are listed.

Capture groups to JSON, CSV or TXT

Checking engine…

Not saved: closing this tab loses your work. Save keeps the regex, flags, engine, texts and tests in this browser only.
Workspace actions
Regular expression
Reference

Regex quick reference

^ · $
Start/end; m = lines.
[abc] · \d
Listed character / digit.
* · + · ?
Zero or more, one or more, optional.
(...)
Capture a numbered group.
(?<name>...)
Named capture.
(?=...)
Ahead; lookbehind varies.
i · m · s
Ignore case / line anchors / dot-newline.
Browse the full reference

Tab inserts a tab · press Esc, then Tab, to leave the editor

No regex yet.

Engine and options
the RegExp of this browser (version not pinned)
⋯

the RegExp of this browser (version not pinned)

Not available in JavaScript · This browser: x · ignore pattern whitespace; a · ASCII-only classes; U · lazy by default; J · duplicate names. u and v cannot be combined.

To run: enter a regex; enter a test text.

Try a verified example

More examples (9)

Extract fields

Find and validate

Split text

Verified 2026-09-25 · rp.js@1 on Node v24.21.0 (V8); browser version varies.

Test text

Tab inserts a tab · press Esc, then Tab, to leave the editor

No text yet.

No result yet

Results appear here after a run.

Verified Fixture FX-R05

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

  1. Write a regex with one capture group per field.
  2. Paste the text; choose line by line or whole text.
  3. Check the unmatched lines, then export JSON, CSV or TXT.

Verified example

Example

Text "id=TX-00057 status=ok"

JavaScript · This browser
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+)

Result: "id=TX-00057", "status=ok"

Python re · Local WASM
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+)

Result: "id=TX-00057", "status=ok"

PCRE2-8 · Local WASM
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+)

Result: "id=TX-00057", "status=ok"

Go regexp · Local WASM
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+)

Result: "id=TX-00057", "status=ok"

Counterexample

Text "=missing"

JavaScript · This browser
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+)

Result: no match

Python re · Local WASM
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+)

Result: no match

PCRE2-8 · Local WASM
\b([A-Za-z_][A-Za-z0-9_]*)=([^\s=]+)

Result: no match

Go regexp · Local WASM
\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

Limits