begin process at 2012 05 29 17:54:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Divers

 > 

Regexp Multilignes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Regexp Multilignes

mardi 24 octobre 2006 à 15:12:07 | Regexp Multilignes

Ordinastie

Bonjour,

Je me trouve confronté à un petit problème concernant les expression régulières:
Voici mon texte:
[EXEMPLE]
ex 1
ex 2
[/EXEMPLE]

Reste du texte

Mon but est de détecter la présence du tag [EXEMPLE], afin de le remplacer s'il existe, sinon je l'ajoute. Mon problème est qu'il m'est impossible de trouver le texte a cause des retours chariots. Voici l'expression que j'utilise.
/\[EXEMPLE](.*\)\[\/EXEMPLE]/

Je pourrais me dire que je suis seulement pas doué pour les regexp, mais celle-ci marche parfaitement en PHP...
Si je mets tout le texte sur une seule ligne, ca marche aussi. Quelqu'un à une idée?

@+ Ordinastie

PS: le texte est le contenu d'un textarea si ca change quelque chose...

mercredi 25 octobre 2006 à 07:55:31 | Re : Regexp Multilignes

bultez

Membre Club




Bonjour,

   ce n'est pas du aux retours chariots
   .* c'est tous les caractères, et ça ne s'arrête pas à [/EXEMPLE]
   pas très au fait non plus des expressions régulières
      je ferais ça en "plusieurs étapes".


<body>
<script type="text/javascript">
 function trait()
 {
  var tmp=document.getElementById("txt");
  var ouv=tmp.value.search(/\[EXEMPLE\]/,"gi");
  var fer=tmp.value.search(/\[\/EXEMPLE\]/,"gi");
  alert ( (ouv!=-1) && (fer!=-1) && (ouv<fer)   );
 }
</script>
<textarea id="txt">
l1
[EXEMPLE]
ex 1
ex 2
[/EXEMPLE]
</textarea>
<input type="button"
   onclick="trait();"
   value="traitement" />
</body>

il n'y a aucun doute dans mon esprit qu'on peut mieux faire !


            Cordialement       Bul    [mon Site]    [M'écrire]
mercredi 25 octobre 2006 à 09:57:01 | Re : Regexp Multilignes

Ordinastie

Réponse acceptée !
Bonjour,


Merci pour la réponse... mais non :)
.* est ce qu'on appelle "greedy" (pas cherché de traduction), ce qui signifie qu'il prendra le plus large possible.
Par exemple, si mon texte est:
[EXEMPLE]
ex 1
ex 2
[/EXEMPLE]
ex 3
[/EXEMPLE]
ex 4

Le texte trouvé sera:
[EXEMPLE]
ex 1
ex 2
[/EXEMPLE]
ex 3
[/EXEMPLE]

Il est possible de limiter la réponse à la premiere occurrence trouvée avec le ? je crois.
Le problème est bien causé par les retours chariots car si je mets mon texte sur une seule ligne, je récupère bien ce qu'il faut.

J'ai fini par trouvé l'expression qu'il me fallait:
/\[EXEMPLE](?:\s)*([\w\s,.:-\\\/]*)(?:\s)*\[\/EXEMPLE]/im

Pour ceux qui souhaiteraient une explication:
Je cherche [EXEMPLE]
Suivi de 0, 1 ou plusieurs \s (retours chariots, blancs etc.), dont je ne veux pas retenir la référence (grace à ?:)
Suivi d'un nombre indeterminé de mots, espaces, virgules, points, deux-points, slash/antislash, tirets, dont je garde la référence
Suivi de 0, 1 ou plusieurs \s (retours chariots, blancs etc.), dont je ne veux pas retenir la référence (grace à ?:)
Et enfin qui fini par [/EXEMPLE]
Le tout, multiligne et insensible à la casse.

J'aurai préférer faire une classe "tout + \s" mais j'arrivai pas et je dois avouer, ca commencait à me saouler.

Voila, en tout cas, merci encore pour la réponse
@+ Ordinastie






Cette discussion est classée dans : problème, multilignes, texte, exemple, regexp


Répondre à ce message

Sujets en rapport avec ce message

Problème zone texte et lien [ par willstar ] Hello, je me demandais si c'était possible d'avoir une zone de texte sans un formulaire et que via un lien normal href, est-il possible d'envoyer la v Problème d'affichage en HTML [ par mouniersophie ] Bonjour a tous,je débute dans cette programmation et j'essaye d'afficher un texte suivie d'une image à un certain endroit de ma page comme suit :CP</D Problème sur script pour formulaire [ par Dark_Kirua ] Bonjour, je lutte un peu pour ce script:le formulaire est composé entre autres d'un champ texte et d'une checkbox et j'aimerais que la checkbox reste Problème Liste Déroulante. [ par BenXbox ] J'Ai Deux Liste Déroulante Et Je Voudrais Que Sa Fasse Sa :1 : Pour Le Choix Du Format exemple : dvd - k7 vidéo - vcd 2 : Affiche Juste Les Infos Par Problème en javascript mettant en question des vilains select [ par Alpacha ] bonjour,je voudrais avoir un exemple de code pour le problème suivant svp :dans un formulaire, il y a un select "sexe" par exemple dans lequel on peut Dimension d'une image située sur le disque dur ou ... [ par b4d ] Voilà, j'ai un petit problème d'envoi d'image!Je travaille avec du php et du javascript et j'ai un petit problème d'envoi d'image...J'ouvre une popup Problème de syntaxe avec Regexp [ par mattarius ] Bonjour à tous, Je débute en Javascript et je viens de découvrir la fonction RegExp, qui est très pratique mais j'ai des problèmes avec la syntax Récupérer les positions d'un champ Texte [ par AshenShugar ] Salut tout le monde, Je voudrais faire un truc qui ressemble au petit menu qui s'affiche quand on tape dans le champ de recherche de ce site. Le champ Problème avec une RegExp [ par AgLS ] Bonjour, J'ai un petit problème avec ma première RegExp en JavaScript. Cette RegExp doit vérifier les critères ci-dessou dans un email: -Commence par Problème de placement [ par plom ] Bonjour, je souhaite faire un cadre autour d'un texte. Voici mon code : <![CDATA[ .div_content { //background-image: url(./imgs/div_background.png


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,685 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales