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=Falseoranchor_end=False. - Examples must be strings;
TrieRegexGeneratorraisesTypeErrorotherwise. TrieRegexGeneratorbuilds 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e140f11473b5fa30f1369fa862d298e136717e5ad594a31de5b6a69a57b30a1
|
|
| MD5 |
f61e300ae88300f99cf7917a722703ea
|
|
| BLAKE2b-256 |
397d48f0a788a0f37aef2ade2559a85b9ac1974fe8fbe50518fa60e21485f7af
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1d3085849e0fc119783fd8876c8c26ecb57acf39d1d82d3157673fed8a91819
|
|
| MD5 |
1623e96c8e2aeae6c876800a4e770a93
|
|
| BLAKE2b-256 |
5caf4ca3ac0a05f1ee7dfe4de41d21e5f4cdc45c177f56f09f7d0d63c84cf5d8
|