<div>See below:</div><div><br></div><div>import std.stdio;</div><div>import std.regex;</div><div><br></div><div>void main(){</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>"h(i".replace!(a=>a.hit~a.hit)(regex(`h\(`,"g")).writeln; //this works, but I need to specify the escape manually</div>
<div>//<span class="Apple-tab-span" style="white-space:pre">    </span>"h(i".replace!(a=>a.hit~a.hit)(regex(`h(`,"gl")).writeln;  //I'd like this to work with a flag, say 'l' (lowercase L) as in 'litteral'.</div>
<div>}</div><div><br></div><div>note, std.array.replace doesn't work because I want to be able to use std.regex' replace with delegate functionality as above.</div><div>This is especially useful when the regex's first argument is given as an input argument (ie is unknown), and we want to properly escape it.</div>
<div><br></div><div>Alternatively, (and perhaps more generally), could we have a function:</div><div>string toRegexLiteral(string){</div><div>//replace all regex special characters (like '(' ) with their escaped equivalent</div>
<div>}</div><div><br></div>