Accueil > Forum > > > > Problème de regex
Problème de regex
mardi 25 mai 2010 à 17:03:16 |
Problème de regex

mohdaef
|
Bonjour à tous,
Je bloque sur un problème d'expressions régulières.
J'ai réalisé un petit éditeur de texte en Ajax, j'ai implémenté les différentes fonctionnalités des boutons et l'aperçu.
Mais j'ai un soucis sur la mise en forme, lorsque je fait plusieur espaces, quand je récupère le code et l'affiche je n'ai qu'un seule espace d'affiché.
Pour cela je doit remplacer les espaces par , sauf qu'uil ne doivent être remplacés que hors des balies (balies marquées par les symboles [ et ].
Comment dois-je procéder ?
Merci d'avance.
|
|
mardi 25 mai 2010 à 17:45:10 |
Re : Problème de regex

Tonio_35
|
Hello
En php ou en JavaScript ?
En php, ca semble marcher :
Code PHP : <?php
$chaine = " toto tata [titi tutu] dsds titi [ ds]";
echo $chaine.'<br />';
function trim_spaces($matches)
{
return str_replace(" ", '-', $matches[1]).'['.$matches[2].']';
}
$chaine = preg_replace_callback('#(.*)\[(.*)\]#isU', 'trim_spaces', $chaine);
echo $chaine;
/*
toto tata [titi tutu] dsds titi [ ds]
--toto-tata-[titi tutu]--dsds-titi-[ ds]
*/
?>
Je te laisse trouver quoi remplacer pour changer les - en ...
_________________________________
Min iPomme
|
|
mardi 25 mai 2010 à 17:49:29 |
Re : Problème de regex

Tonio_35
|
C'est une piste... Ca marche pas toujours mon truck bidul... Je vais essayer d'améliorer ça, dis moi si toi tu y arrive...
Genre pour ca ca marche pas :
Code PHP : <?php
$chaine = "[titi tutu] texte après ma balise";
$chaine = "Texte sans balise ";
?>
_________________________________
Min iPomme
|
|
mardi 25 mai 2010 à 18:47:49 |
Re : Problème de regex

mohdaef
|
Salut.
Merci pour ton aide, c'est vrai je n'ai pas spécifié en quel langage je voulais le faire tout simplement parce qu'il il me faudrait une version javascript pour l'affichage en temps réel et une version php qui se trouve dasn la fonction de traitement du message avant envoi dans la base de donnée.
J'ai un peu de mal à comprendre comment fonctionne ton code je ne suis pas très à l'aise en regex... mais le problème que tu cite des cas qui ne fonctionnent pas j'y avais pensé avant, et comme solution j'avais pensé à : Il faut remplacer tout les espaces par des puis tout les qui se trouve dans des balises les refaire passer en espaces simple.
Tu en pense quoi ?
|
|
mardi 25 mai 2010 à 20:44:58 |
Re : Problème de regex

Tonio_35
|
C'est une solution oui mais ce que j'aime pas trop dans cette solution c'est que tu peux transformer un tappé par l'utilisateur...
Pour ce qui es de ma regex, c'est vrais que je ne l'ai pas expliquée :
#sert de délimiteur à ma regex
(.*)\[( veux dire : tous les caractères se trouvant avant le [
(.*)\] veux dire tout les caractères avant le ].
Ici je créé donc deux groupes d'inconus (.*) tout les caractères avant le [, deuxième groupe (.*) tous les caractères dans le []...
isU : Ce sont les options de la regex.
- i: case insensitive (insensible à la casse)
- s: le caractère spécial . remplace aussi les caractères blancs (\n...)
- U: Ungreedy, s'arrête à la première occurrence trouvée (pratique pour le BBCode, comme dans ton cas).
ensuite preg_replace_callback va appeler la fonction 'trim_spaces' pour les differentes occurences trouvées avec en paramètre les deux groupes de la regex...
Ensuite dans ma fonction trim_spaces, dans le premier groupe je remplace les espaces par des - et je replace le deuxième groupe...
_________________________________
Min iPomme
|
|
mardi 25 mai 2010 à 21:19:50 |
Re : Problème de regex

mohdaef
|
Salut,
Impécable merci pour ton explication, Je pense que même si ma regex était fausse la façon de s'y prendre est pas mal.
Dis moi si je me trompe mais il suffit de remplacer les espaces dans la chaine de caractère qui n'est pas entourée de [ et ] ou bien si il existe ces deux symboles autour il faut que le premier soit fermé et le second ouvert et on récupère la chaine se trouvant entre la fermeture et l'ouverture.
Parcontre si le raisonement est bon je ne sais pas comment le transformer en regex.
|
|
vendredi 28 mai 2010 à 15:53:52 |
Re : Problème de regex

DiGhan
|
Bonjour,
Pourquoi ne pas placer le texte parsé entre des balises <pre> ?
|
|
Cette discussion est classée dans : problème, espaces, regex, balies
Répondre à ce message
Sujets en rapport avec ce message
problèmes des répertoires avec espaces [ par ChocoBiscuit ]
salut tout le monde....Voilà... ca fait un peu genre moi g pleins de problèmes hyper importants, mais bon là c'est réellement le cas...Problème :
UPLOAD Problème aec les espaces [ par bdgta ]
J'ai trouvé ce super code icihttp://www.phpcs.com/code.aspx?ID=23677Je débute en php, et j'aimerais savoir cmt faire pour supprimer les espaces des fi
Problème avec les regex [PHP] [ par b4d ]
Bonjour.Voilà, j'ai un petit problème avec une regex...Je ne sais pas comment la faire.Pouvez-vous m'aider?Le problème:Je vais lire dans un fichier et
Problème de regex [ par tony1239456 ]
Bonjour, j'ai un problème au niveau de ma regex. Elle sert à extraire le premier lien qu'elle trouve dans la page et la met dans la variable : $lien[0
Problème regex :-( [ par alphacrash ]
Bonjour !Voici mon problème, j'ai crée une regex de ce type: $regex = '/\[tag:(.*?)]/i';Mon problème est que si la valeur de tag est par exemple :
Problème de regex [ par trasher ]
Salut, Voilà, je suis entrain de récuperer des infos sur un site avec ce regex : [code=php]<?php preg_match('#Long-m[^"]+trage(.*?)\.#is', $recup, $
Problème espaces - récupération champs formulaire [ par ju0123456789 ]
Bonjour J'ai un soucis tout bête, mais ennuyant. J'ai récupère des valeurs de ma BDD dans un champs input, cette donnée s'affiche bien, mais avec des
Problème de regex, capture de texte entre 2 caractères [ par b4d ]
Bonjour,J'ai un petit problème avec des regex !Après avoir longtemps cherché, j'ai trouvé la solution à mon premier problème. Mais pas au second !J'ai
onclick PHP [ par lamine11 ]
Bonjour,Voici mon problème :j'ai une requette qui raméne des variables : $row[1],$row[2].......j'affiche ces variables dans tableau : sur le colonne s
Problème undefined [ par micky781 ]
Bonsoir, voilà je débute en php, j'ai un problème avec le code çi dessous que je n'arrive pas à résoudre ce bout de code marche à part que sur la page
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|