📚 genex - Awesome Go Library for Text Processing
Count and expand Regular Expressions into all matching Strings.
🏷️ Text Processing
📂 Libraries for parsing and manipulating texts.
⭐ 77 stars
Detailed Description of 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