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.3.tar.gz (2.9 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.3-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for rector-0.1.3.tar.gz
Algorithm Hash digest
SHA256 0c42b0b7f7dd537f5944dc62c3fbbdea5be64147a9d59d68f17b39dfdbd8e647
MD5 7b9b2bffd7bd50899c9a2adb33a60e75
BLAKE2b-256 f23d95b18654b4b089c0b109a2cf3f26a03ac446a49563908aa2cbfb8526590e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for rector-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f4145cadd67c954cfb106cb959277a094aa6fd35b74fec79dfd843f9a0d0a5c3
MD5 16e390a9f374b899ca7e1c4262bafc29
BLAKE2b-256 8971bfbd0ba98f24fd5e4421de910cdf977a113139428d0ee1d348d8b66ec8b8

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