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 19/09/2006, 17h33   #1
Membre confirmé
 
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 267
Points : 267
Par défaut Besoin d'aide pour une regex

Bonjour tout le monde,

Voici mon problème : je dois remplacer les espaces par des _ lorsque ceux-ci sont dans des guillements.

Par exemple
doit devenir
mais je n'y arrive pas... voici ce que j'ai essayé au cas où :
Code :
$str = ereg_replace('\"(.*)[[:space:]](.*)\"', "\\1_\\2" , $str);
merci d'avance
vallica est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2006, 20h45   #2
Membre régulier
 
Homme Matthieu
Consultant informatique
Inscription : janvier 2003
Messages : 134
Détails du profil
Informations personnelles :
Nom : Homme Matthieu
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2003
Messages : 134
Points : 79
Points : 79
bonjour

j'ai deux remarques a faire: est ce qu'un bon str_replace ne ferait pas l'affaire ?
ensuite, les expressions regulieres preg sont plus rapides que les ereg et la syntaxe est pas bien differente.
cordialement
ermelir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2006, 21h02   #3
Membre confirmé
 
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 267
Points : 267
Salut,

concernant le str_replace, je ne suis pas sur qu'il suffise à lui seul car imagine que tu ais

Code :
mot " bla bla " mot " blibli blo" mot mot
Je me suis rendu compte que ce cas pouvais se produire, et c'est très embettant car il faut compter les " afin de savoir si on est dans une zone à convertir ou pas.
Je suis en train de tester avec un enchainement de strpos, str_replace, etc.

sinon les preg je ne connais pas...
vallica est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 08h50   #4
Membre confirmé
 
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 267
Points : 267
Salut,

Bon j'ai réussi à le faire en php, voici donc une solution :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$str = 'montee+marche voiture+" roule en"+voiture. "salut toi " ';
echo "<br>".$str;
if ((substr_count($str, '"')%2)!=0){
	$str="";
	echo "<br> nombre impair de guillemets";
}
$pos=0;
$cpt=0;
$sortie="";
while ($pos<strlen($str)){		
	$lettre=substr($str,$pos,1);
	if ($lettre=='"')
		$cpt++;
	// si on a un espace et que le nb de guillemets courant est impair on remplace
	if (($lettre==' ') && (($cpt%2)!=0))
		$lettre="_";
	$sortie.=$lettre;
	$pos++;
}
echo "<br>".$sortie;
++
vallica 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 08h40.


 
 
 
 
Partenaires

Hébergement Web