digitalmars.D.bugs - [Issue 7260] New: "g" on default in std.regex.match
- d-bugmail puremagic.com Jan 09 2012
- d-bugmail puremagic.com Feb 24 2012
- d-bugmail puremagic.com Feb 24 2012
- d-bugmail puremagic.com Apr 19 2012
- d-bugmail puremagic.com Apr 19 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7260 Summary: "g" on default in std.regex.match Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nobody puremagic.com ReportedBy: bearophile_hugs eml.cc --- Comment #0 from bearophile_hugs eml.cc 2012-01-09 13:52:08 PST --- D2 code: import std.stdio: write, writeln; import std.regex: regex, match; void main() { string text = "abc312de"; foreach (c; text.match("1|2|3|4")) write(c, " "); writeln(); foreach (c; text.match(regex("1|2|3|4", "g"))) write(c, " "); writeln(); } It outputs (DMD 2.058 Head): ["3"] ["3"] ["1"] ["2"] In my code I have seen that usually the "g" option (that means "repeat over the whole input") is what I want. So what do you think about making "g" the default? Note: I have not marked this issue as "enhancement" because of this comment by Dmitry Olshansky (found by drey_ on IRC #D): http://dfeed.kimsufi.thecybershadow.net/discussion/thread/jc9hrl$2lpp$1 digitalmars.com#post-jc9mag:2430tq:241:40digitalmars.comYet I have to issue yet another warning about new std.regex compared with old one: import std.stdio; import std.regex; void main() { string src = "4.5.1"; foreach (c; match(src, regex(r"(\d+)"))) writeln(c.hit); } previously this will find all matches, now it finds only first one. To get all of matches use "g" option. Seems like 100% compatibility was next to impossible.
-- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 09 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7260 Dmitry Olshansky <dmitry.olsh gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dmitry.olsh gmail.com --- Comment #1 from Dmitry Olshansky <dmitry.olsh gmail.com> 2012-02-24 12:21:44 PST --- I dunno how to "fix" this bug. "g" by default imples there is a way to override it. regex("blah","") ? Leaving it as is now breaks old codebases that rely on "g" (though there should be more of legacy std.regexp code out there). Making it "g" on affects old code only inside foreach and generic constructs that show all matches or iterate on them, it's rare but non-zero. Another way would be to ditch current API, which I is not ideal btw ;) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 24 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7260 --- Comment #2 from bearophile_hugs eml.cc 2012-02-24 12:45:08 PST --- (In reply to comment #1)I dunno how to "fix" this bug. "g" by default imples there is a way to override it. regex("blah","") ? Leaving it as is now breaks old codebases that rely on "g" (though there should be more of legacy std.regexp code out there). Making it "g" on affects old code only inside foreach and generic constructs that show all matches or iterate on them, it's rare but non-zero. Another way would be to ditch current API, which I is not ideal btw ;)
Fully ditching the currently used API is probably too much. A possible idea: regex("blah") <<== repeat over the whole input. regex("blah","") <<== repeat over the whole input. regex("blah","g") <<== repeat over the whole input. regex("blah","d") <<== doesn't repeat over the whole input. So far you have done good work on the regular expression implementation, so I trust your work. Thank you. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 24 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7260 SomeDude <lovelydear mailmetrash.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lovelydear mailmetrash.com Severity|normal |enhancement -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 19 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7260 bearophile_hugs eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|enhancement |normal --- Comment #3 from bearophile_hugs eml.cc 2012-04-19 15:18:13 PDT --- This is not an enhancement request (I consider it more like a little Phobos regression). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 19 2012









d-bugmail puremagic.com 