regex with literal (ie automatically replace '(' with '\(', etc) )
timotheecour
timothee.cour2 at gmail.com
Wed May 29 16:21:33 PDT 2013
See below:
import std.stdio;
import std.regex;
void main(){
"h(i".replace!(a=>a.hit~a.hit)(regex(`h\(`,"g")).writeln; //this
works, but I need to specify the escape manually
// "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'.
}
note, std.array.replace doesn't work because I want to be able to
use std.regex' replace with delegate functionality as above.
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.
Alternatively, (and perhaps more generally), could we have a
function:
string toRegexLiteral(string){
//replace all regex special characters (like '(' ) with their
escaped equivalent
}
More information about the Digitalmars-d-learn
mailing list