IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Une regex Python en Javascript [RegExp]


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    252
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 252
    Par d�faut Une regex Python en Javascript
    bonjour

    j'ai un regex python

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    import re
    pretty_re = re.compile("([^/(]+)(?:\((.+)\))?$")
     
    def pretty(s):
      g = pretty_re.search(s).groups()
      return g[1] or g[0]
    le but est de transformer les
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o  ->  crt1.o
    contiki-minimal-net.a(contiki-main.o)   ->  contiki-main.o
    /usr/lib/i386-linux-gnu/libc_nonshared.a(elf-init.oS)  ->   elf-init.oS
    en gros r�cuperer le dernier element d'un path et prendre la derniere partie entre parenthese

    il y a surement plus simple que l'enorme regex python ci-dessus, en faisant d'abord un split('/') , en tout cas merci de l'aide

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var pretty_re =/\(([^)]+)\)[^)]+$/
     
     
    var chaine1="/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o  ->  crt1.o"
    var chaine2="contiki-minimal-net.a(contiki-main.o)   ->  contiki-main.o"
    var chaine3="/usr/lib/i386-linux-gnu/libc_nonshared.a(elf-init.oS)  ->   elf-init.oS"
     
      g = pretty_re.exec(chaine2)
      alert(g[1])
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    252
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 252
    Par d�faut
    Citation Envoy� par SpaceFrog Voir le message
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var pretty_re =/\(([^)]+)\)[^)]+$/
     
    var chaine1="/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o"
    var chaine2="contiki-minimal-net.a(contiki-main.o)"
    var chaine3="/usr/lib/i386-linux-gnu/libc_nonshared.a(elf-init.oS)"
     
      g = pretty_re.exec(chaine2)
      alert(g[1])
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TypeError
    arguments: Array[2]
    0: 1
    1: null
    length: 2
    __proto__: Array[0]
    message: "—"
    stack: "—"
    type: "non_object_property_load"
    __proto__: Error

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    ??
    tu es sur que tu es en javascript ... ???

    il m'alert bien le r�sultat attendu ...
    en g�n�ral je teste avant de donner du code ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    252
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 252
    Par d�faut
    j'ai essay� avec la cosole de chrome, l� je viens de r�essayer sous firefox, et c'est toujours:
    TypeError: g is null

  6. #6
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    on peut voir ton code ...
    Vu que le mien fonctionne, cela ne peut provenir que d'une erreur dans ton code
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  7. #7
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Spaffy, d'apr�s moi, �a vient de la chaine � tester.
    Tu as conserv� la forme originale
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    var chaine1="/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o  ->  crt1.o"
    var chaine2="contiki-minimal-net.a(contiki-main.o)   ->  contiki-main.o"
    var chaine3="/usr/lib/i386-linux-gnu/libc_nonshared.a(elf-init.oS)  ->   elf-init.oS"
    mais je pense qu'il fallait plut�t lire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    var chaine1="/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o"  //->  crt1.o
    var chaine2="contiki-minimal-net.a(contiki-main.o)"   //->  contiki-main.o
    var chaine3="/usr/lib/i386-linux-gnu/libc_nonshared.a(elf-init.oS)"  //->   elf-init.oS
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  8. #8
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    252
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 252
    Par d�faut
    c'est les chaines ecrites comme ci dessous, ton regex n'est pas bon

    mais sinon ils marchent pour les chaines que tu as ecrites

    est-ce qu'il y a un regex simple pour recuperer juste la partie entre parenth�se
    sachant qu'avant je peux faire un split('/') et prendre le dernier �l�ment

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    var pretty_re =/\(([^)]+)\)[^)]+$/
     
    var chaine1="/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o"
    var chaine2="contiki-minimal-net.a(contiki-main.o)"
    var chaine3="/usr/lib/i386-linux-gnu/libc_nonshared.a(elf-init.oS)"
     
      g = pretty_re.exec(chaine2)
      alert(g[1])

  9. #9
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    var chaine2="contiki-minimal-net.a(contiki-main.o)"
    var sReg = /\((.*?)\)/;
    g = sReg.exec(chaine2)
    alert(g[1])

  10. #10
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    252
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 252
    Par d�faut
    bon en l'absence de r�ponse j'ai fait un truc pas genial
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    var reg=new RegExp("[\(\)]", "g")
    function pretty(s){
        t=s.split('/');
        return t[t.length-1].split(reg)[1]
    }
    var chaine3="/usr/lib/i386-linux-gnu/libc_nonshared.a(elf-init.oS)"
    alert(pretty(chaine3))
    edit: merci nosmoking!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 3
    Dernier message: 26/06/2006, 13h48
  2. Passer une variable python en javascript?
    Par Sayrus dans le forum Zope
    R�ponses: 6
    Dernier message: 19/06/2006, 10h29
  3. [RegEx] php et javascript dans une regex
    Par grochenel dans le forum Langage
    R�ponses: 7
    Dernier message: 06/12/2005, 22h21
  4. [signaux] contr�ler une apply python
    Par jean-jacques varvenne dans le forum G�n�ral Python
    R�ponses: 1
    Dernier message: 22/03/2005, 15h06
  5. Recuperer le numero de ligne d'une exception Python
    Par chrdou dans le forum G�n�ral Python
    R�ponses: 4
    Dernier message: 28/02/2005, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo