Skip to main content

Regex generator that derives optimized patterns from example strings.

Project description

rector — Regex Generator

Rector turns example strings into optimized regular expressions you can reuse in search, validation, or routing rules. It ships with a trie-based engine that produces compact, deterministic patterns (also used by the CLI).

Installation

pip install rector

Library usage

from rector import TrieRegexGenerator

# Build a minimal trie-based pattern for larger sets or ranges
numbers = (
    TrieRegexGenerator()
    .add_examples([str(n) for n in range(10, 1000)])
    .generate()
)
assert numbers.pattern == "^[1-9][0-9]{1,2}$"

# Generate from small fixed-length samples
words = TrieRegexGenerator().add_examples(["cat", "car", "cap"]).generate()
assert words.pattern == r"^ca[prt]$"

CLI

Pipe examples to rector and it prints the generated pattern to stdout:

printf "cat\ncar\ncap\n" | rector
# -> ^ca[prt]$

The CLI anchors patterns by default and exits with status 1 if no stdin input is provided. Use --dense-threshold to adjust when near-contiguous character sets are collapsed into ranges (accepts fractions.Fraction strings like 3/4 or 0.6; default when flag is present without a value: 8/10).

Behavior notes

  • Patterns anchor to start/end unless you pass anchor_start=False or anchor_end=False.
  • Examples must be strings; TrieRegexGenerator raises TypeError otherwise.
  • TrieRegexGenerator builds a trie, minimizes it, and compacts ranges/quantifiers (using the density threshold for near-contiguous classes); it also accepts empty lines as valid examples.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rector-0.1.9.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rector-0.1.9-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file rector-0.1.9.tar.gz.

File metadata

  • Download URL: rector-0.1.9.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for rector-0.1.9.tar.gz
Algorithm Hash digest
SHA256 b64e57a41dd912c1e98ad59a2f4a6cd7ab094481a5bfa0685601b8e2eb9fae43
MD5 7d4422253164d0eb8977d5532d2a0956
BLAKE2b-256 76c558bfef3adece1dbe831920c2fa23244f2adac8c9b08863da2c09d39a5920

See more details on using hashes here.

File details

Details for the file rector-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: rector-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for rector-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 00cd65ec0da4835c7a71315e6916e504be97d79db3f3246e2305b2665e7c5014
MD5 56c9be0410aed4d1f2621f564499e0c4
BLAKE2b-256 55f3b73c422e84aff79910e7be0e006ca2c24b0ee7c2c622ae4c65c215ded576

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page