On Thursday, 2 January 2014 at 15:11:55 UTC, Tyler wrote:
Hi, I'm having issues with the case insensitive flag from the phobos regex library (2.064). I have the following line of code which returns a string. Consider the following inputs...
fileLine = "policy PRI-GROUPJ-EXPORT"
redTerm = "groupj"

auto newString = replaceAll!(replaceTerm)(fileLine, regex(redTerm, "gi"));

The code will not match the redTerm "groupj", even though I have the case insensitive flag "i" set. If the redTerm text is "GROUPJ", it will match and return the correctly modified string.

Am I using this incorrectly?

It's working fine for me.

    import std.regex, std.stdio;

    void main()
    {
        auto fileLine = "policy PRI-GROUPJ-EXPORT";
        auto redTerm = "groupj";

        writeln(fileLine);
        auto newString = replaceAll!(term => "replaced")(fileLine,
                             regex(redTerm, "gi"));
        writeln(newString);
    }

Output:
    policy PRI-GROUPJ-EXPORT
    policy PRI-replaced-EXPORT

Sidenote: The 'g' flag doesn't do anything if you are using the [match/replace][All/First] functions (and is actually deprecated because it's confusing).

Reply via email to