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().generate([str(n) for n in range(10, 1000)])
assert numbers.pattern == "^[1-9][0-9]{1,2}$"

# Generate from small fixed-length samples
words = TrieRegexGenerator().generate(["cat", "car", "cap"])
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.7.tar.gz (17.2 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.7-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rector-0.1.7.tar.gz
  • Upload date:
  • Size: 17.2 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.7.tar.gz
Algorithm Hash digest
SHA256 3e140f11473b5fa30f1369fa862d298e136717e5ad594a31de5b6a69a57b30a1
MD5 f61e300ae88300f99cf7917a722703ea
BLAKE2b-256 397d48f0a788a0f37aef2ade2559a85b9ac1974fe8fbe50518fa60e21485f7af

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rector-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 15.4 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f1d3085849e0fc119783fd8876c8c26ecb57acf39d1d82d3157673fed8a91819
MD5 1623e96c8e2aeae6c876800a4e770a93
BLAKE2b-256 5caf4ca3ac0a05f1ee7dfe4de41d21e5f4cdc45c177f56f09f7d0d63c84cf5d8

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