www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Redundant "g" flag for regex?

reply biocyberman <biocyberman gmail.com> writes:
I get the same output with or without "g" flag at line 6:
https://run.dlang.io/is/9n7iz6

So I don't understand when I have to use "g" flag.
Jun 23 2018
parent reply Basile B. <b2.temp gmx.com> writes:
On Saturday, 23 June 2018 at 12:17:08 UTC, biocyberman wrote:
 I get the same output with or without "g" flag at line 6:
 https://run.dlang.io/is/9n7iz6

 So I don't understand when I have to use "g" flag.
My bet is that Regex results in D are lazy so "g" doesn't make sense in this context however I'm able to see an effect with "match": match("12000 + 42100 = 54100", regex(r"(?<=\d)(?=(\d\d\d)+\b)", "")).writeln; match("12000 + 42100 = 54100", regex(r"(?<=\d)(?=(\d\d\d)+\b)", "g")).writeln; matchFirst would be like without "g" matchAll would be like with "g"
Jun 23 2018
parent biocyberman <biocyberman gmail.com> writes:
On Saturday, 23 June 2018 at 13:45:32 UTC, Basile B. wrote:
 On Saturday, 23 June 2018 at 12:17:08 UTC, biocyberman wrote:
 I get the same output with or without "g" flag at line 6:
 https://run.dlang.io/is/9n7iz6

 So I don't understand when I have to use "g" flag.
My bet is that Regex results in D are lazy so "g" doesn't make sense in this context however I'm able to see an effect with "match": match("12000 + 42100 = 54100", regex(r"(?<=\d)(?=(\d\d\d)+\b)", "")).writeln; match("12000 + 42100 = 54100", regex(r"(?<=\d)(?=(\d\d\d)+\b)", "g")).writeln; matchFirst would be like without "g" matchAll would be like with "g"
I should have read the doc more thoroughly: https://dlang.org/phobos/std_regex.html#match
Delegating the kind of operation to "g" flag is soon to be 
phased out along with the ability to choose the exact matching 
scheme.
So case closed for me
Jun 23 2018