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=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.
Release files for rector 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rector-0.1.9.tar.gz | 17.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rector-0.1.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.6 kB
Release files / rector-0.1.9.tar.gz
| Download URL | rector-0.1.9.tar.gz |
|---|---|
| Size | 17.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b64e57a41dd912c1e98ad59a2f4a6cd7ab094481a5bfa0685601b8e2eb9fae43
|
|
BLAKE2b-256 checksum How to use checksums |
76c558bfef3adece1dbe831920c2fa23244f2adac8c9b08863da2c09d39a5920
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Release files / rector-0.1.9-py3-none-any.whl
| Download URL | rector-0.1.9-py3-none-any.whl |
|---|---|
| Size | 13.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
00cd65ec0da4835c7a71315e6916e504be97d79db3f3246e2305b2665e7c5014
|
|
BLAKE2b-256 checksum How to use checksums |
55f3b73c422e84aff79910e7be0e006ca2c24b0ee7c2c622ae4c65c215ded576
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|