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 27/11/2010, 14h09   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 1
Points : 1
Par défaut Backslashes et regex me font de la résistance !

Bonjour, pour me premier post sur le forum des pro de l'info je viens vous demandez un peu d'aide au sujet d'une regex que j'essaye de mettre en place depuis maintenant quelques jours -_-''

Sans plus attendre voici la regex :
Code :
1
2
3
4
5
$pattern = '#[\"]*[\"]+[a-z]#';
 
$string = '\"2\";i';
 
preg_replace($pattern, '', $string);
Mon objectif est de récupérer uniquement le chiffre qui se trouve entre \" \" sachant que pour le i cela peut-être n'importe quelle lettre...

Je sais pas si je me suis bien exprimé car ce n'est pas facile a faire comprendre O_o


Merci d'avance
lir93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2010, 14h52   #2
Invité régulier
 
Inscription : octobre 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 29
Points : 7
Points : 7
Bonjour,
essaye ceci :

Code :
preg_replace("#^\\\\\"([^\\\"]+)\\\\\";[a-z]$#", "$1", '\"2\";i');
johnstyle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2010, 14h56   #3
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 815
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 815
Points : 3 440
Points : 3 440
Salut et bienvenue
Tu dis vouloir récupérer une valeur, or je vois plutôt une tentative de suppression

Pour résumer :
Tu as une chaîne au format \"%NOMBRE%\";%LETTRE%
Tu souhaites récupérer %NOMBRE%

Le plus simple est d'utiliser sscanf( ) :

Code :
1
2
3
4
5
<?php
 
$string = '\"1234\";D' ;
sscanf($string, '\"%d\"', $number) ;
echo $number ; // 1234
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/11/2010, 15h07   #4
Invité de passage
 
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 1
Points : 1
Dans le mille !!!

Merci Séb t'assure, effectivement j'avais pas bien réfléchis à ce que je voulais faire j'y suis allé un peu vite et dans la mauvaise direction....

En revanche je ne connaissais pas sscanf et je dois dire que c'est une fonction qui me plait assez xD


Merci de vos réponses rapide je passe en résolu
lir93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2010, 15h27   #5
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

sinon (moins bien adapté) par une regex :

Code php :
1
2
3
 
$string = '\"1234\";D' ;
$sortie =  preg_replace('#[^\d]#', '', $string);

(remplacement de tous les caractères différents d'un chiffre par rien)
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2010, 21h43   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 464
Points : 8 464
Citation:
Envoyé par Madfrix Voir le message
Bonjour,

sinon (moins bien adapté) par une regex :

Code php :
1
2
3
 
$string = '\"1234\";D' ;
$sortie =  preg_replace('#[^\d]#', '', $string);

(remplacement de tous les caractères différents d'un chiffre par rien)
ou direct \D
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h12.


 
 
 
 
Partenaires

Hébergement Web