[Tableaux] expression regulière dynamique sur "(" et "["
Bonjour
je recupère d'une table mysql une liste de mots qui lorsqu'ils sont place en début de chaine doivent être rejeter de la chaine.
Je construit donc dynamiquement un expression régulière qui pour chaque mot de ma liste me permet de tester sa présence dans ma chaine de caractère.
Voici ma liste et mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
$mot_vide = Array
(
[0] => "
[1] => Le
[2] => La
[3] => Les
[4] => (
[5] => L'
[6] => [
)
$chaine = trim(stripslashes($chaine));
$rows = count($mot_vide);
for ($k=0;$k<$rows;$k++){
// recherche sur du mot vide sur le début de la chaine sans tenir compte de la casse
$exp_reg = "/^".addslashes($mot_vide[$k])."/i";
if (preg_match($exp_reg,$chaine)){
$str = substr($chaine,strlen($mot_vide[$k])+1);
$str = trim($str);
break;
}
// expression regulière obtenue
//exp_reg = /^\"/i
//exp_reg = /^Le/i
//exp_reg = /^La/i
//exp_reg = /^Les/i
//exp_reg = /^(/i
//exp_reg = /^L\'/i
//exp_reg = /^[/ |
le script marche bien jusqu'à ce que l'on arrive a ligne 4 et 6
ou j'ai le message d'erreur
Citation:
Warning: preg_match() [function.preg-match]: Compilation failed: missing ) at offset 2
Warning: preg_match() [function.preg-match]: Compilation failed: missing terminating ] for character class at offset 2
Quelqu'un pourrait t'il me dire comment faire pour que ma parenthèse et mon crochet soit considéreré comme une chaine de caratère et non pas un élémént de l'expression ?
merci d'avance