accès aux groupes de discussion, consultation et publication d'articles, recherche de "newsgroups"...
membres, identifiez-vous
é-mail Mot de passe
nouveau ? mot de passe oublié ?
Chargement... Chargement en cours...

Groupes français belges canadiens suisses internationaux Nétiquette
Échangez opinions et commentaires dans les forums de discussion.

Re: [HS] Expression reguliere

 [  Nouvelle Discussion Nouvelle discussion  |  Répondre au groupe Répondre au groupe  |  fr.comp.lang.javascript ] 

Retour : Accueil du site fr comp lang javascript   charte stats de ce groupe


  Sujet:   Re: [HS] Expression reguliere  
 De: om+n...@miakinen.net (Olivier Miakinen)
 Groupes: fr.comp.lang.javascript
 Organisation: Neottia nidus-avis
 Date: 14. Jul 2008, 09:34:50
 References: 1 2 3 4
Le 14/07/2008 01:07, SAM a écrit :
>> 
>> Rhazut, je pensais pourtant que les assertions arrières faisaient partie
>> du tronc commun Perl/PCRE.
> 
> Si ça peut aider :
>
<http://developer.mozilla.org/fr/docs/R%C3%A9f%C3%A9rence_de_JavaScript_1.5_Core:Objets_globaux:RegExp>

Merci, c'est dans mes signets (du moins chez moi, je dois faire pareil
au boulot).

> (sic)
> les assertions avant,
> décrites aux lignes (?=), (?!) et (?:) dans ce tableau
> (/sic)

Les deux premières sont des assertions (en avant), la troisième est
juste une façon d'empêcher les parenthèses d'être capturantes.

> 
> Où il semblerait que le "positive lookbehind assertion"
> (je regarde devant par l'arrière)
> doive (peut-être ?) s'écrire :
>      (?:[\[,])  ou : (?:[[,])

Non, visiblement il n'y a que les assertions en avant : positive (?=...)
et négative (?!...). Il n'y a pas les assertions en arrière, ni positive
(?<=...) ni négative (?<!...).

>> Autre problème, il ne comprend pas non plus [],] alors que [\],] marche bien.
> 
> Ha!? mon interrogation à ce sujet n'était donc pas si futile.

Je dois le reconnaître.

>> ------------------------------------------------------------------------
>> function dorepnull(sujet) {
>> return sujet.replace(/[[,](null,)*null[\],]/g,
>>    function(match) {
>>      return match.substring(0,1) + '#' + (match.length-1)/5
>>             + match.substring(match.length-1);
>>    });
>> }
>> ------------------------------------------------------------------------

Puisque les assertions en avant sont reconnues, on peut alors simplifier
la fonction :
------------------------------------------------------------------------
function dorepnull(sujet) {
return sujet.replace(/[[,](null,)*null(?=[\],])/g,
   function(match) {
     return match.substring(0,1) + '#' + match.length/5;
   });
}
------------------------------------------------------------------------

J'ai testé (Seamonkey et IE), ça marche.


DateSujet  Auteur
01.01.
o 
Groups Explorer contact votre avis comment ça marche? rechercher un groupe suggérer un groupe abuse accueil du site   Imprimer cette page   Envoyer cette page à un(e) ami(e)
Usenet Gratuit