Regex LLM Output Extractor
Extraheer gestructureerde data (JSON, codeblokken, key-value-paren) uit rommelige LLM-responses. Kies uit gangbare templates of schrijf je eigen regex. Live preview.
Geef hierboven invoer om het resultaat te zien.
Waarvoor is dit?
Je vroeg het LLM om JSON. Het gaf je JSON gewikkeld in ```json-fences met een "Zeker, alsjeblieft!"-preambule. Of het gaf "het antwoord is 42" terwijl je gewoon 42 wilde. Of een genummerde lijst terwijl je een komma-gescheiden string vroeg. Welkom bij het parsingprobleem dat niemand fatsoenlijk oplost. Deze tool houdt een kleine bibliotheek van gangbare extractiepatterns plus een vrije regex-editor, zodat je het patroon op je echte response-tekst kunt iteren in de browser.
Wanneer gebruiken
- Een output-parser ontwerpen voor een agent-pipeline. Gooi wat echte responses erin, bouw een regex die ze allemaal pakt, plak 'm in je code.
- Een kapotte parser debuggen. Je prod-pipeline begon te falen omdat het model "Hier is de JSON:" voor het fence zette. Zie precies waar je regex afhaakt.
- Snelle eenmalige extractie. Je hebt tien LLM-responses in een doc; je wilt het gestructureerde stuk uit elk halen. Plakken, matchen, kopiëren, door.
De templates
- JSON in ```json-fence — de meest voorkomende case. Captured groep 1 = de body. Gebruik
gals er meerdere fences kunnen zijn. - JSON in elk fence — zelfde idee maar de taal-tag is optioneel en we capturen alleen als de body op
{ … }of[ … ]lijkt. - YAML in fence — als JSON-fence maar matcht
```yaml/```yml. - Elk fenced codeblok — captured taal-tag + body. Gebruik als je niet weet wat erin zit.
- Kaal JSON-object — greedy match van eerste
{tot laatste}. Broos maar werkt voor "alleen JSON"-responses. - Genummerde lijst-items —
^\s*\d+[.)]\s*(.+)$metgm. Captured de tekst van elk item, zonder nummering. - key: value-paren — regel voor regel. Groep 1 = key, groep 2 = value. Stopt bij de eerste dubbele punt.
- Enkele classificatielabel — handig voor sentiment- / safety-classifiers die met één woord moeten antwoorden.
- Custom regex — leeg het patroon en schrijf je eigen.
De "Parsed JSON"-regel
Als de eerste capture-groep (of bij gebrek daaraan de hele match) als JSON parseert, drukt de tool het geparseerde resultaat onder de groepen af. Dat vertelt je niet alleen "matchte de regex" maar "matchte hij het stuk dat je wilde, op een JSON-decodeerbare manier". Faalt het parsen, blijft die regel leeg.
Veelvoorkomende valkuilen
- JavaScript-regex, geen PCRE. Geen
\K, geen recursieve patterns. Lookbehind vereist moderne browsers (post-2018 — prima hier maar let op als je het patroon elders kopieert). - Het model wikkelt zijn JSON in commentaar. Zoek niet naar
{aan het begin van de string — vind het fence of gebruik een tolerante non-greedy capture. - Trailing comma's in "JSON"-output. Sommige modellen smokkelen trailing comma's binnen ondanks training. De regex matcht;
JSON.parsefaalt. Strip trailing comma's voor je parseert. - "JSON" met enkele aanhalingstekens. Zelfde verhaal — lijkt op JSON, is geen geldig JSON, de regex maakt het niet uit,
JSON.parsewel. - Geneste fences. Als het model een markdown-fence-voorbeeld in zijn response zet, krijg je een vals-positieve match op het binnenste fence. Test met realistische data.
- Gebruik regex niet voor serieuze geneste-bracket-extractie. Als het model een object met een object met een array van objecten teruggeeft, schrijf een echte JSON-bewuste extractor — of vraag de fence-vorm en parse de body.
- Privacy. Tekst en patroon blijven op de pagina. Geen upload, geen API-call.