Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2011, 16h15   #1
Membre du Club
 
Inscription : décembre 2008
Messages : 179
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 179
Points : 51
Points : 51
Par défaut Recherche de caractères non alphanumériques

Bonjour,

Dans un script php je cherche a afficher tout les résultats quand un champ donnée contient une donnée qui n'est pas alphanumérique et qui n'a pas d'accentuation.

Voila ce que j'ai fait jusque maintenant mais le résultat n'est pas correct apparemment.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<?php
require("config.inc.php");
require("odbc_error.php");
 
###########################################
# Connexion au serveur
$conn = odbc_connect($dsn,$user,$passwd,SQL_CUR_USE_ODBC);
 
$query1="SELECT E4PRDC, E4DESC  FROM $lib.EMOINVOIC4";
 
$result1 = odbc_Exec($conn, $query1);
 
while($row = odbc_fetch_array($result1)){
 
 
        if(!preg_match("[a-zA-Z0-9]",$row['E4DESC'])) {
        echo $row['E4PRDC'].";".$row['E4DESC']."\n";
        }
}
?>
Pourriez vous m'aider au niveau du regex.
tiamat59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 16h23   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
essaye l'inverse avec

if(preg_match("[^a-zA-Z0-9]",$row['E4DESC']))
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 16h28   #3
Membre du Club
 
Inscription : décembre 2008
Messages : 179
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 179
Points : 51
Points : 51
Avec cela il me retourne aucun résultat
tiamat59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 16h47   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
donc aucunes de tes données ne contiennent un caractère non alphanumérique
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 16h56   #5
Membre du Club
 
Inscription : décembre 2008
Messages : 179
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 179
Points : 51
Points : 51
si il y en a car a ma première requête il m'en renvoyais.
Le problème avec mon premier test c'est qu'il y en avait avec et sans.
tiamat59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 16h59   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
montre un exemple de chaine que tu veux et que tu ne veux pas avec tes vrais valeurs
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 09h05   #7
Membre du Club
 
Inscription : décembre 2008
Messages : 179
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 179
Points : 51
Points : 51
Exemple:

"test de recherche" --> ne doit pas sortir
"deuxiéme test --> doit sortir
"dernier test #" --> doit sortir
tiamat59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 10h27   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
il faut que tu rajoutes l'espace
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 11h41   #9
Membre du Club
 
Inscription : décembre 2008
Messages : 179
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 179
Points : 51
Points : 51
c'est bien comme ça qu'il faut ajouter l'espace preg_match("[^a-zA-Z0-9 ]
car je n'ai pas encore de résultat.
tiamat59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 10h08   #10
Membre éprouvé
 
Avatar de d-Rek
 
Développeur Web
Inscription : janvier 2007
Messages : 438
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2007
Messages : 438
Points : 400
Points : 400
L'espace c'est mieux en début de regexp
Code :
1
2
preg_match("/([^ a-z0-9]+)/i", "Coucou # les amis"); //true
preg_match("/([^ a-z0-9]+)/i", "Coucou les amis"); //false
Sinon l'erreur venait de l'absence du + pour matcher une ou plusieurs occurrences de la classe.
__________________
Mon blog
d-Rek est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h03.


 
 
 
 
Partenaires

Hébergement Web