Skip to content

gmtuca/RandomPattern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RandomPattern

Library to generate a random pattern from which a given String is guaranteed to match.

Example:

"Hello World!"

may produce:

[c-f]l{1,2}\w\sWo[^ras2]l*d

#Usage:

String pattern = PatternGenerator.random(CharRange charRange, String string);

or using an infinite Stream:

Stream<String> patternStream = PatternGenerator.stream(CharRange charRange, String string);

#Benchmark Results from running program against variable input lengths 10,000 times to gather average performance. Performed single threaded on ASUS X555LD, Ubuntu 16.04.
Additional benchmarking can be found on the images folder.

#Samples

Here are examples of 100 elements of the stream given the input (CharRange.LATIN_PRINTABLE, "Hello World!")

\D+\w{2,6}\s\D{1,2}[h-x]+[\[-k]\D
[^3 O\*]+[e-v]{1,} [^E<]*!
H[^\|Up]l*o*\D{0,}\D+
H[^s]*?\w{2}\D{1,5}[^Xy]\D{3,}
H\S{2}[^\(]{8,9}
[^16=]*
\D*\wl\w\W*W[h-q][o-z]\w*[^\*]{2}
H\Dl*o\D+
\S{4}[m-u] [T-Y]o\S*\D{2,}
He[i-s]{2}o[ -"]W\D{2,}\Dd[ -#]
\D\S+\s\S{3,5}\w\S\W
[A-J]e[^p%]*[^U~/]\w*[^CB]
\D{3,7}o?\D{5,6}d!
\S* \D*
[A-I]e?l*\D*\S\D*
H[^9u!]+[^BZ]?\D{2,}\D{3}
[^\\#]{0,3}\S+[^I;\(]\D{3}\w{2}\W?
\S[^Q8]{4,}\D+\S+
\S{0,2}\S{2,}[^\.gi][P-\]][m-v]{2}\w*[ -\&]
H\w+\w{0,2} \w{4,}[^TL']
H\w+\D\S+\S*
\w{3}l\w\s[T-_]\wr\D+
\S{0,}\S{3,}\D*\w+\D{2}[ -\+]
\D+\D{4,}\S{4,}
\w*[^U]{7,}d\W
He\Sl\w\s\S{0,4}\w{2,}\W
\D*\S{1,2} \w*[^pT]
[^9B]{3}\D*[^32\[]*
H\S{2,}\D{3,}\S{2,}
\S{5} Wo\w{3}?[^\]]
H\D{1,4}\S[ -\)]\S\wr[^k]{3}
H\w{4,4} \Do\S{3,4}
[^"_]{2}\D{3,3}[^\^]{7,10}
[^;/D]{3,}[ -\$][V-`]\w*[^M]{1,}
\w[^E#5]+
[C-I]?[\\-g]\D{3,}\w{4}!
[D-P]\D[^\.]{1,}?[k-p][^bdK]{1,}o[^%pz]+[^\(2]
\w{4}[^`]+[i-m]\S*
H[^:<]+[^gZ]+\s\D{4,}
\S[^9\)][e-p]\D{2,}[ -!]\w{0,}\D\D*
\D{3,6}\D*\s\D\S\S{4}
H\S{2,4}[^y\{/]*\D*[ -\(]
\w[a-k]\w\w{2}[ -\&]\D{4,}
H?\S[^/g]{3}\W\D+\S{2,4}[^D]!
H\D\w{3,6}\D[^Z]{6}
\S{1,3}\w*[ -\&][^b=]{5}[^\('G]
\w[^w]*\w{3,5}?[ -#]\D\S*
[^~>f>]*[^A]+\S{0,2}[o-v]\D{2,}!
H[\[-f][^N/]lo\D*
\S{1,}[^V9;]{4,6}o\w{3}\S
[G-K]e\D\S{2} W[^\-]r\D*
[@-M]?[^da]\S{2,6}\s[Q-`]\w*!
\w*\w\D+o[^~o]?[^t~ ]{1,}
\S+\D{2,}[^Y]\D{4}[^a]+
[^x]+[^l\)1a]{3,}l\S{2}
\S[^\$6]*
[^2\- ]{1,5}\S{1,}\W[V-`]\w[^\[RG]{3,}
\w*[^0\(]{4,}?\S{4,5}\W
H\w\S{2,}\D[^qI]+[e-v][^pQg][^h#i]
[^nXp][^ML]+[h-y]\DW\w\w{2,}\D
He\D*[^KD]*\D+
[D-O]\w{1,4}o \D{5,6}
[^Nl]e\S{3,} \w{2,}\w{2,3}\W
\w{3,}? [T-X]\D+!
[^mf\|m]{7}\w*l[b-i]\W
\S{2,7}[e-u]\WWo[^kZ][h-o]*[^@'%]{0,}
[^\(]+[i-r][h-r]{2} \S*?[^s\{o][\\-g][ -\(]
H\S+[ -']\w\S\w{1,3}\S
[\?-P]\D+l[b-f][^\|u]
\D+\D*[^\*]W\S\D{2,}[_-e]!
\w{5,}[ -\(]?\S*[^ ]{2,6}
\D{0,2}[^_][h-m]\S\D{4}[d-p]+\W
\S*[ -\)]\w+\S{2,3}[ -\)]
[G-Q]\S{3,}\D? [U-\]][i-s]{2,}?\w[ -\+]
H\S+\W\D\S{4,7}
[^0#w\|]\S{2}?[^A]?o [^EJ~]{1,}r\S{3,}
He\S+\W\D{0,2}r\D+[ -\*]
\w{5,}\s*\S[j-u]{2,}?[`-k]*\S
\w{2,5}\w{1,3}\s\S+\D[^\+h]\w\W
[F-I][c-o]{4,} [V-Y][f-y]{3}[\]-f]?\D
\S\S*[^\-<x]*\D*[d-t]d\W
[@-N]\D*[g-t]{2}[ -#][^M]{5,8}[^j"\^]
[^'\&R]{4}\w\s\D{1,}\D+[^"8]
\S{4,5}\w[ -#][T-\^]\w*[^\|R]+\W
\D{3,7}\W\D{2,4}\D{1,5}\W
H[_-j]l*o[ -#]\So[^U80x]{4,}
\w{4}\S\W\S+\D{3}\S
[^i_r]*\S\W*\w*\S{1,}
[F-Q]e\D{3}\D\w{1,2}r[k-m]\w\D
H*\D{3}\w\W\S\S{2,5}?[^w7f][\^-n][^pX]
\D{2,}[n-q]\W\w+\w*!
\w*\w[^Am]W\Drl[^4312]{2}
\D\S+\s[U-\\]*\D\w*[ -\*]
\D{3,4}\w\w\D?W?\S{5}
\D*\S[ -#][^7T]{3}\w[\^-e]?[^n\\q]
\w*\w*[^aLH]{3}[^dK]{1,}?d!
\w*[g-t]\D{3}\D\D*\S?
\D*[^9]\D[c-s]{2,}[ -!]\w{2,5}\w[_-k][^\]]
H\S[^W`]{3,} \D+\D\S
\D{1,}[^q\\\\]{1,}\W\D*\w[^%_gF]

About

Project with the aim of generating random patterns which are guaranteed to match a given String.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages