xeger

package module
v0.0.0-...-65d4990 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 24, 2021 License: MIT Imports: 3 Imported by: 0

README

go-xeger

go-xeger is a golang module that generates random strings from a regular expression. Inspired by Java library Xeger and Python library xeger

Installation

To install go-xeger:

$ go get github.com/RusAD32/go-xeger
Usage
package main

import (
    "fmt"
    "regexp/syntax"
    "math/rand"
    
    "github.com/RusAD32/go-xeger"
)

func main() {
    // for one time generation
    resultStr, err := xeger.Generate("[0-9]+")
    if err != nil {
        panic(err)
    }
    fmt.Println(resultStr)
    
    // using a Xeger object 
    x, err := xeger.NewXeger("[0-9]+")
    if err != nil {
        panic(err)
    }
    // Optionally, set custom upper limit
    x.Limit = 15
    fmt.Println(x.Generate())
    
    // using a set seed
    x1, err := xeger.NewXegerWithSeed("[0-9]+", 123456)
    if err != nil {
        panic(err)
    }
    fmt.Println(x1.Generate())
    
    // creating a Xeger object directly
    myRegex, _ := syntax.Parse("[0-9]+", syntax.Perl) // handle this error in the real code
    myXeger := &xeger.Xeger{
    	myRegex,
    	rand.NewSource(123456),
    	15,
    }
    fmt.Println(myXeger.Generate())
}
Contributing

Contributions are very welcome. Please open a tracking issue or pull request and we can work to get things merged in.

Documentation

Overview

Package xeger forked and expanded from https://github.com/takahiromiyamoto/go-xeger this fork aims to provide more customization options

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Generate

func Generate(regex string) (string, error)

Generate returns a random string matching pattern

Types

type Xeger

type Xeger struct {
	Re    *syntax.Regexp
	Src   rand.Source
	Limit int
}

func NewXeger

func NewXeger(regex string) (*Xeger, error)

NewXeger returns an instance of Xeger with default parameters

func NewXegerWithSeed

func NewXegerWithSeed(regex string, seed int64) (*Xeger, error)

NewXegerWithSeed returns an instance of Xeger with a custom seed

func (*Xeger) Generate

func (x *Xeger) Generate() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL