generate random strings from a pattern like regexp
It is golang porting of perl's String::Random (ported only randregex
interface)
str, err := strrand.RandomString(`[1-9]{1,3}.?`)
fmt.Println(str) // 13h
OO interface
sr := strrand.New()
str, err := sr.Generate(`[あ-お]{15,18}`)
Factory Method
g, err := strrand.New().CreateGenerator(`\d{2,3}-\d{3,4}-\d{3,4}`)
str1 := g.Generate() // 11-2258-333
str2 := g.Generate() // 093-0033-3349
Please note that the pattern arguments are not real regular expressions. Only a small subset of regular expression syntax is actually supported. So far, the following regular expression elements are supported:
\w Alphanumeric + "_".
\d Digits.
\W Printable characters other than those in \w.
\D Printable characters other than those in \d.
\s Whitespaces (whitespace and tab character)
\S Ascii characters without whitespaces
. Printable characters. (ascii only)
[] Character classes. (Supported multibyte characters)
{} Repetition.
* Same as {0,}.
? Same as {0,1}.
+ Same as {1,}.
Seeding is naive and not secure. So, don't use this for creating password and so on.