J'essaie d'échapper à des caractères regex-réservés avec une barre oblique inverse (ne demandez pas - il suffit de dire que je ne cherche pas à analyser HTML :) :) Et je reçois quelque chose d'étrange.PHP: Echapper à des caractères réservés à RegEx - quelqu'un sait ce qui ne va pas avec ça?
$regex_chars = array('[' , '\\' , '^', '$' , '.' , '|' ,
'?' , '*' , '+' , '(' , ')');
$regex_chars_escaped = array('\[ ' , '\\\\ ' , '\^ ', '\& ' ,
'\. ' , '\| ' , '\? ' , '\* ' , '\+ ' , '\(' , '\)');
$escaped_string = str_replace($regex_chars,$regex_chars_escaped,
implode("",$regex_chars));
echo implode(' ',$regex_chars) . "<br />";
echo $escaped_string;
Les espaces servent à la clarté. C'est la sortie
[ \^$ . | ? * + ()
\\ [ \\ \^ \& \. \| \? \* \+ \(\)
Tout va bien, sauf pour la première partie. D'où vient le "\\" et pourquoi n'est-ce pas "\ ["?
probablement parce que je suis un putain de crétin. Je vous remercie! – Greg
De rien Greg. –
+1 sur votre commentaire pas parce que vous êtes un crétin, mais parce que vous êtes un crétin drôle. – Ben