regex - greedy block ()* contains wildcard -
i building grammar in antlr4, , getting warning 
tl4.g4:224:12: greedy block ()* contains wildcard; non-greedy syntax ()*? may preferred
here line of code referring
block     : ( statement | functiondecl )* (return expression ';')?     ; what warning mean, how can correct ?
the warning telling block ()* greedy, meaning try match maximum occurrences of statement or functiondec1 which, depending on situation, might not expect.
changing ()*? makes non-greedy, suggested warning. means match minimum occurrences of statement or functiondec1.
expression examples strings:
samples:
foofoobar foobarbar foofoobarbarbar expression:
(foo|bar)*bar will give result:
foofoobar foobarbar foofoobarbarbar expression:
(foo|bar)*?bar will give result:
foofoobar foobar foofoobar for last one, result stop @ first bar
Comments
Post a Comment