Examples
Regex Explanation
from rexplain import explain
print(explain(r"abc\w+\w*10$"))
Example String Generation
from rexplain import examples
print(examples(r"[A-Z]{2}\d{2}", count=2))
Regex Testing
from rexplain import test
print(test(r"foo.*", "foobar"))
Railroad Diagrams
Basic Diagram Generation
from rexplain import diagram
# Generate a simple diagram
svg_content = diagram(r"^\w+$")
print(svg_content[:100]) # Show first 100 characters
# Save diagram to file
diagram(r"^\w+$", "simple_diagram.svg")
Detailed Diagram Generation
from rexplain import diagram
# Generate a detailed diagram based on parsed components
diagram(r"^\w+@\w+\.\w+$", "email_diagram.svg", detailed=True)
CLI Usage
# Generate basic diagram
rexplain diagram "^\\w+$" --output basic.svg
# Generate detailed diagram
rexplain diagram "^\\w+@\\w+\\.\\w+$" --detailed --output email.svg
# Print SVG to stdout
rexplain diagram "^\\d{3}-\\d{2}-\\d{4}$"
Complex Pattern Examples
from rexplain import diagram
# Email validation pattern
diagram(r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$", "email_validation.svg")
# Phone number pattern
diagram(r"^\(\d{3}\) \d{3}-\d{4}$", "phone_number.svg")
# Password validation pattern
diagram(r"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d]{8,}$", "password_validation.svg")