genex
Count and expand Regular Expressions into all matching Strings
About genex
genex

Genex package for Go
Easy and efficient package to expand any given regex into all the possible strings that it can match.
This is the code that powers namegrep.
Usage
package main
import (
"fmt"
"regexp/syntax"
"github.com/alixaxel/genex"
)
func main() {
charset, _ := syntax.Parse(`[0-9a-z]`, syntax.Perl)
if input, err := syntax.Parse(`(foo|bar|baz){1,2}\d`, syntax.Perl); err == nil {
fmt.Println("Count:", genex.Count(input, charset, 3))
genex.Generate(input, charset, 3, func(output string) {
fmt.Println("[*]", output)
})
}
}
Output
Count: 120
[*] foo0
[*] ...
[*] foo9
[*] foofoo0
[*] ...
[*] foofoo9
[*] foobar0
[*] ...
[*] foobar9
[*] foobaz0
[*] ...
[*] foobaz9
[*] bar0
[*] ...
[*] bar9
[*] barfoo0
[*] ...
[*] barfoo9
[*] barbar0
[*] ...
[*] barbar9
[*] barbaz0
[*] ...
[*] barbaz9
[*] baz0
[*] ...
[*] baz9
[*] bazfoo0
[*] ...
[*] bazfoo9
[*] bazbar0
[*] ...
[*] bazbar9
[*] bazbaz0
[*] ...
[*] bazbaz9
Install
go get github.com/alixaxel/genex
License
MIT
Frequently Asked Questions
What is genex?
genex is a Text Processing library for the Go programming language. Count and expand Regular Expressions into all matching Strings
How do I install genex?
Install genex with the Go module system using `go get alixaxel/genex`. Check the repository for the current installation instructions.
What category does genex belong to?
genex is listed under Text Processing, specifically Regular Expressions.