On Thursday, 7 August 2014 at 16:12:59 UTC, Justin Whear wrote:
On Thu, 07 Aug 2014 16:05:16 +0000, seany wrote:

obviously there are ways like counting the match length, and then using the maximum length, instead of breaking as soon as a match is found.

Are there any other better ways?

You're not really using regexes properly. You want to greedily match as
much as possible in this case, e.g.:

void main()
{
        import std.regex;
        auto re = regex("ab(cd)?");
        assert("PREabcdPOST".matchFirst(re).hit == "abcd");
        assert("PREabPOST".matchFirst(re).hit == "ab");

}

thing is, abcd is read from a file, and in the compile time, i dont know if cd may at all be there or not, ir if it should be ab(ef)

Reply via email to