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
le script marche bien jusqu'à ce que l'on arrive a ligne 4 et 6
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 = /^[/
ou j'ai le message d'erreur
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 ?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
merci d'avance




Répondre avec citation



Partager