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 16/09/2006, 14h01   #1
Membre éprouvé
 
Avatar de Christophe Charron
 
Homme Christophe Charron
Développeur informatique
Inscription : juillet 2005
Messages : 768
Détails du profil
Informations personnelles :
Nom : Homme Christophe Charron
Âge : 51
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2005
Messages : 768
Points : 492
Points : 492
Par défaut Combinaisons dans preg_replace

Bonjour,
Je ne suis pas très à l'aise avec preg_replace, que j'utilise peu et quand je l'utilise, c'est dans des fonctions écrites il y a longtemps ... donc merci par vance pour votre indulgence

Je souhaite remplacer tout ce qui n'est pas alphabétique, ni en majuscule ni en minuscule, par un underscore. J'arrive à changer tout ce qui n'est pas en minuscule OU tout ce qui n'est pas en majuscule

Voici le code complet du script
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
<?php
header('Content-type: text/xml; charset=utf-8');
define('EOL', "\r\n");
$vl_c_entete='';
$vl_c_entete.='<?xml version="1.0" encoding="utf-8"?>';
$vl_c_entete.='<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"';
$vl_c_entete.=' xmlns:row="http://dummy/rdf#" xmlns:NC="http://home.netscape.com/NC-rdf#">';
$vl_c_entete.='<RDF:Bag about="urn:data:row">';
echo $vl_c_entete; 
$vv_chaine="AAA je mets plein de commentaires d''ici à (la)-en passantt par &lt;(#">]=\\ j''avais oublié)";
echo('<RDF:li><RDF:Description>'.EOL);  
 
 
  $a[0]='/[^a-z]/';
//$a[0]='/[^a-z][^A-Z]\\)/';
//  $a[1]='/[^A-Z]/';
  $b[0]='_';
//  $b[1]='_';
 
  $fieldname=preg_replace($a, $b, $vv_chaine);
//$fieldname=preg_replace($vl_c_avant, $vl_c_apres, $vv_chaine);
 
echo(EOL.'<row:'.$fieldname.'>'.EOL);
echo $vv_chaine;
 
echo(EOL.'</row:'.$fieldname.'>'.EOL);
echo(EOL.'</RDF:Description></RDF:li>'.EOL);
echo('</RDF:Bag>'.EOL);
echo('</RDF:RDF>'.EOL);
 
?>
Si vous l'exécutez, le résultat par de lui même !! Je précise que je ne souhaite pas passer toute la chaine en minuscule avant le remplacement.
D'avance, merci pour votre aide.
__________________
Cordialement,
Christophe Charron
Pour consulter mon site professionnel, vous pouvez cliquer sur le bouton prévu à cet effet, juste sous la signature .
Christophe Charron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2006, 14h05   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Vous semblez près du but, avec :
Code :
1
2
 
$texte = preg_replace('£[^a-zA-Z]£', '_', $texte);
vous n'arrivez pas à vos fins ?


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2006, 14h13   #3
Membre éprouvé
 
Avatar de Christophe Charron
 
Homme Christophe Charron
Développeur informatique
Inscription : juillet 2005
Messages : 768
Détails du profil
Informations personnelles :
Nom : Homme Christophe Charron
Âge : 51
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2005
Messages : 768
Points : 492
Points : 492
Citation:
Envoyé par julp
Vous semblez près du but, avec :
Code :
1
2
 
$texte = preg_replace('£[^a-zA-Z]£', '_', $texte);
vous n'arrivez pas à vos fins ?
Julp.
Si, si parfait merci pour la rapidité de la réponse. Si j'osais ... et comment intégrer dans cette séquence, en plus les ?

Merci à vous

P.S.
Les "£" sont consécutifs à une transformation ici ou est-ce une nouvelle syntaxe (pas vus celle-ci) ??!!
__________________
Cordialement,
Christophe Charron
Pour consulter mon site professionnel, vous pouvez cliquer sur le bouton prévu à cet effet, juste sous la signature .
Christophe Charron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2006, 14h17   #4
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
£ : C'est un des formats possibles du délimiteur ( généralement on utilise "/" mais chacun ses gouts )

pout integrer les caractères, tu les rajoutes à la suite dans la liste

Code :
1
2
 
$texte = preg_replace('£[^a-zA-Zéèàëê]£', '_', $texte);
ou alors pour éviter les problèmes de casses, tu peux rendre la recherche insensible à la casse avec le modificateur i

Code :
1
2
 
$texte = preg_replace('£[^a-zéèàëê]£i', '_', $texte);
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2006, 14h30   #5
Membre éprouvé
 
Avatar de Christophe Charron
 
Homme Christophe Charron
Développeur informatique
Inscription : juillet 2005
Messages : 768
Détails du profil
Informations personnelles :
Nom : Homme Christophe Charron
Âge : 51
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2005
Messages : 768
Points : 492
Points : 492
Parfait ... Merci infiniment
__________________
Cordialement,
Christophe Charron
Pour consulter mon site professionnel, vous pouvez cliquer sur le bouton prévu à cet effet, juste sous la signature .
Christophe Charron 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 08h23.


 
 
 
 
Partenaires

Hébergement Web