randarium
Strings

Regex String Generator

Create reproducible synthetic strings from common regular-expression tokens. Unsupported constructs are reported instead of being executed.

Also known as: regexp generator · pattern string · regex test data

seeded · synthetic data

Output

No output yet — set your options and hit .
About this tool, tips & examples

What it does

The Regex String Generator runs regular expressions backwards: give it a pattern and it produces strings that match. It parses a safe, documented subset of regex syntax itself — never executing your pattern through the platform’s regex engine — and generates up to 1,000 seeded, reproducible matches per run.

Supported syntax

Literals, | alternation, groups, ., character classes like [A-Z], the escapes \d, \w, \s, and the quantifiers ?, *, +, and {m,n}. Anchors (^, $) are accepted as zero-width markers. Unsupported constructs — lookarounds, backreferences, flags, advanced Unicode — are reported in the pattern field instead of being silently mishandled.

Common use cases

  • Form validation fixtures — generate strings matching your validation pattern to test the accept path ([A-Z]{2}\d{4} → license-plate-shaped values).
  • Parser test data — inputs guaranteed to match a grammar fragment.
  • API examples — format-correct IDs, codes, and references for documentation.
  • Fuzzing seed corpora — pattern-conforming strings as starting points for mutation-based fuzzers.

Settings

  • Regex pattern — the pattern to generate from, in the supported subset.
  • How many — 1 to 1,000 matching strings, exportable as text, CSV, or JSON.
  • Seed — the same seed and pattern regenerate the identical strings.

Privacy note

Patterns are parsed and strings generated locally in your browser; nothing is uploaded. Generated values are synthetic — even when a pattern describes something sensitive-looking, the output is random material, not real credentials or identities.

FAQ

Does this execute my regex? No — it parses only the documented subset with its own safe parser, so there’s no pathological-regex blowup and no engine quirks. That’s also why exotic constructs are rejected rather than guessed at.

Why was my pattern rejected? It uses a feature outside the subset (lookaround, backreference, flags). Rewrite with literals, groups, classes, and the supported quantifiers — most fixture patterns fit comfortably.

How do unbounded quantifiers behave? * and + generate bounded repetitions internally, so output stays a sensible length. Pin exact lengths with {m,n} when the size matters.