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

Python Discussion :

Avancer mot par mot dans une chaîne


Sujet :

Python

  1. #1
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut Avancer mot par mot dans une chaîne
    Tout est dans le titre.

    Toute info. est la bienvenue.

  2. #2
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    Bonjour,

    Citation Envoyé par rambc Voir le message
    Tout est dans le titre.

    Toute info. est la bienvenue.
    Tu peux récupérer les mots d'une chaîne avec str.split() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> for mot in 'pouet prout plop'.split():
    ...     print mot
    ... 
    pouet
    prout
    plop

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Selon la nature du texte, ce qui sépare les mots peut être plus varié qu'un simple espace. Auquel cas, je propose plutôt de passer par les expressions régulières.

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import re
     
    motif = r"[ ]*[,;:.!? ][ ]*"
     
    print re.split(motif, "aaa ,  bbb;ccc. ddd, eee fff")
     
    ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff']
    Le motif ici veut dire:
    - espace: zéro ou plus
    - l'un des caractères suivants: ,;:.!? ou un espace
    - espace: zéro ou plus

    Si c'est du texte littéraire, il y a d'autres problèmes. Par exemple, l'apostrophe peut être soit un séparateur situé entre un article et un mot (ex: l'artiste) soit faire partie d'un mot (ex: aujourd'hui). Il faut voir aussi si on veut traiter les traits d'union de fin de ligne. Etc...

    Tyrtamos

  4. #4
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Il est possible de faire un regex plus simple grace au \b (word-boundary).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> import re
    >>> pat = re.compile(r'\b\w+\b')
    >>> motif = "Salut l'ami, comment va,pense;a-aller=chez)ton\nfrere"
    >>> pat.findall(motif)
    ['Salut', 'l', 'ami', 'comment', 'va', 'pense', 'a', 'aller', 'chez', 'ton', 'frere']
    Ou encore, en incluant les apostrophes dans un mot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> pat = re.compile(r"\b[\w']+\b")
    >>> pat.findall(motif)
    ['Salut', "l'ami", 'comment', 'va', 'pense', 'a', 'aller', 'chez', 'ton', 'frere']

  5. #5
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Moi je ne comprends pas ce que signifie "avancer mot par mot".
    Surtout le terme "avancer..."
    Vos codes n'avancent pas, il renvoient chacun une liste.
    S'agit il de faire quelque chose du genre
    for mot in texte: sans traitement préalable du type split() pour isoler les mots ?
    Ou bien de déterminer la liste des mots d'un texte par un traitement comme vous les proposez ?
    On sait tous les difficultés que posent des problèmes liés au langage, surtout des problèmes posés de façon trop générale et floue: «Selon la nature du texte, ce qui sépare les mots peut être plus varié qu'un simple espace» tyrtamos
    Je ne comprends pas qu'on puisse essayer de répondre à une question aussi vague. Ou mal posée.
    Ceci dit sans vouloir froisser personne

  6. #6
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    Citation Envoyé par eyquem Voir le message
    S'agit il de faire quelque chose du genre
    for mot in texte: sans traitement préalable du type split() pour isoler les mots ?
    C'est cela l'idée. Par mot on peut entendre tout groupe maximal de lettres qui se suivent avec éventuellement un seul tiret au milieu.

  7. #7
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Pour "avancer mot par mot", il est toujours possible de gérer le déplacement d'un curseur qui progresse caractère par caractère. On peut même faire cela en utilisant la fin de ligne comme un séparateur supplémentaire, ce qui permettrait de traiter un fichier texte d'un seul coup.

    La solution suivante utilise une classe, parce que ça permet de conserver l'emplacement du curseur d'un mot à l'autre. Et on utilise les possibilités d'itérateur avec les méthodes next() et __iter__(), et la fin de boucle avec le déclenchement de l'exception StopIteration.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
     
    class Mot(object):
     
        def __init__(self, chaine="", sep=" ,;.:!?\r\n"):
            self.ch = chaine
            self.lch = len(self.ch)
            self.sep = sep
            self.i1 = 0
            self.i2 = 0
     
        def __iter__(self):
            return self
     
        def next(self):
            # recherche du début du mot suivant
            self.i1 = self.i2
            while True:
                self.i1 += 1
                if self.i1>=self.lch:
                    raise StopIteration
                if self.ch[self.i1] not in self.sep:
                    break
     
            # recherche de la fin du mot suivant
            self.i2 = self.i1
            while True:
                self.i2 += 1
                if self.i2>=self.lch:
                    break
                if self.ch[self.i2] in self.sep:
                    break
     
            # retour du mot
            return self.ch[self.i1:self.i2]
    Exemple d'utilisation (on pourrait aussi définir d'autres séparateurs à l'appel de la classe):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    texte = """ ghureiv ryhe-iuzop geizoapn fieoznv thdizoqa, muezpoadtyiezmn,crfslqmur ;fiesqnvy!ieqz feiozqy eizo fgieo ga
    ntejuvn t
    nhdus : vghuris ?ghsd"""
     
    for mot in Mot(texte):
      print mot
    Ce qui affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    ghureiv
    ryhe-iuzop
    geizoapn
    fieoznv
    thdizoqa
    muezpoadtyiezmn
    crfslqmur
    fiesqnvy
    ieqz
    feiozqy
    eizo
    fgieo
    ga
    ntejuvn
    t
    nhdus
    vghuris
    ghsd
    A noter que si la chaine de séparateur transmise à l'appel se limite aux caractères de fin de ligne ("\r\n"), la boucle renvoie chaque ligne du texte.

    Il devrait aussi être possible d'utiliser une expression régulière pour identifier des séparateurs plus complexes, avec dans ce cas transmission d'un motif à l'appel, au lieu d'une chaine de séparateurs.

    Pour pouvoir récupérer l'emplacement exact de chaque mot dans le texte, il faut faire un appel un peu différent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    mot = Mot(texte)
    for x in mot:
      print x, mot.i1, mot.i2
    Ce qui affichera:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ghureiv 1 8
    ryhe-iuzop 9 19
    geizoapn 20 28
    ...
    vghuris 128 135
    ghsd 137 141
    Tyrtamos

  8. #8
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Il devrait aussi être possible d'utiliser une expression régulière pour identifier des séparateurs plus complexes
    A mon sens, ce n'est définitivement pas les séparateurs qu'il faut identifier, mais bien les caractères qui peuvent faire partie d'un mot. (Donc les lettres et éventuels @ ou autres).

    De cette manière, on évite d'oublier de spécifier des séparateurs, ils sont tous implicites. Dans ta liste plus haut, il manque notamment les parenthèses et le slash.

  9. #9
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    à Antoine_935:

    Ce n'est pas mon choix. Les séparateurs me semblent plus faciles à identifier. Mais le choix entre les 2 solutions peut dépendre du type de texte.

    Tyrtamos

  10. #10
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    J'ai une solution beaucoup plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    import re
     
    texte = """ ghureiv ryhe-iuzop geizoapn fieoznv thdizoqa, muezpoadtyiezmn,crfslqmur ;fiesqnvy!ieqz feiozqy eizo fgieo ga
    ntejuvn t
    nhdus : vghuris ?ghsd"""
     
    motif = r"([^ ,;:.!?\r\n]+)"
     
    for mot in re.finditer(motif, texte):
        print mot.group(1)
    Ce qui affiche comme précédemment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    ghureiv
    ryhe-iuzop
    geizoapn
    fieoznv
    thdizoqa
    muezpoadtyiezmn
    crfslqmur
    fiesqnvy
    ieqz
    feiozqy
    eizo
    fgieo
    ga
    ntejuvn
    t
    nhdus
    vghuris
    ghsd
    Le motif utilisé veut dire: au moins un de n'importe quel caractère autre qu'un séparateur.

    Comme précédemment, on peut récupérer à chaque boucle l'emplacement exact du motif trouvé avec mot.start(1) et mot.end(1).

    Il faut, bien entendu, gérer les séparateurs pertinents en fonction du but recherché. On peut aussi, à l'inverse, chercher les mots à travers les caractères permis dans les mots, en laissant donc implicites les séparateurs. A mon avis, c'est le type de texte qui dira ce qu'il faut faire (code source d'un programme, texte littéraire multilingue en unicode, ...).

    Tyrtamos

  11. #11
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    La question avait déjà été traitée, avec toutefois des solutions un peu différentes si je me rappelle bien...
    http://www.developpez.net/forums/d69...rences-entier/

    EDIT: En fait le but du thread est un peu différent, puisqu'il y est question de compter les répétitions de chaque mots présents dans le texte, mais l'identification des mots reste commun a ton objectif...

  12. #12
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Moi je ne comprends pas ce que signifie "avancer mot par mot".
    Surtout le terme "avancer..."
    Vos codes n'avancent pas, il renvoient chacun une liste.
    Je plussoie Eyquem !
    Quant aux regex pour un pb aussi simple ...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    def avance(S):
        i=0
        while True:
            Mot=''
            while not S[i].isalpha():
                i+=1
            while S[i].isalpha():
                Mot+=S[i]
                i+=1
            yield Mot        
     
     
    def  main():
        S=" Tra la la"
        A=avance(S)
        try:
            while True:
                print A.next()
        except IndexError:
            print "C'est fini"
     
    main()

  13. #13
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Comme la question de départ était très générale, chacun l'a interprété à sa sauce. Mais en fait, chaque solution est adaptée à un type de texte différent.

    La solution basée sur le test des mots avec isalpha() ne détectera pas des mots comprenant:
    '_', '0'..'9': comme dans les noms de variable d'un code source (et les nombres seront des séparateurs).
    '@': comme dans une adresse email (ni d'ailleurs '<' et '>')
    '-' (=tiret comme dans "presse-fruits"), ''' (apostrophe comme dans "aujourd'hui") comme dans un texte littéraire.

    Par contre, il trouvera les caractères accentués.

    En fait la "bonne solution" est celle qui s'adaptera le plus facilement à la "grammaire" du texte et à la méthode de traitement voulue.

    Tyrtamos

  14. #14
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    La solution basée sur le test des mots avec isalpha() ne détectera pas des mots comprenant:
    Cela c'est très simple à régler:
    Ecrire une chaine ALPHA comprenant tous les caractères qu'on veut accepter, écrire une fonction de test 'IsIn' testant si un caractère est dans ALPHA, et remplacer la méthode isalpha par la fonction IsIn.
    Mon intervention venait surtout à l'appui de la remarque de Eyquem qui signale que beaucoup de solutions retournent des listes sortes de 'explode' du texte à étudier, au lieu d'avancer effectivement sans stockage inutile de grosses structures. Ce qu'il faut retourner c'est un itérateur, pas une liste.

  15. #15
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Ce qu'il faut retourner c'est un itérateur, pas une liste.
    Voilà, c'était ça mon idée.
    Mais je n'ai pas réussi à l'exprimer de cette façon précise et concise.






    À mon avis le challenge est impossible à réaliser parce que

    - d'un coté, comme le dit très bien tyrtamos,
    la "bonne solution" est celle qui s'adaptera le plus facilement à la "grammaire" du texte et à la méthode de traitement voulue
    - d'un autre coté, rambc a répondu «C'est cela l'idée.» à la question
    S'agit il de faire quelque chose du genre
    for mot in texte: sans traitement préalable du type split() pour isoler les mots ?
    Autrement dit, il s'agit d'obtenir le son des notes d'un piano sans appuyer sur les touches.
    Les discussions sur le meilleur moyen d'y arriver risquent de durer.

  16. #16
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Citation Envoyé par Zavonen Voir le message
    Je plussoie Eyquem !
    Quant aux regex pour un pb aussi simple ...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    def avance(S):
        i=0
        while True:
            Mot=''
            while not S[i].isalpha():
                i+=1
            while S[i].isalpha():
                Mot+=S[i]
                i+=1
            yield Mot        
     
     
    def  main():
        S=" Tra la la"
        A=avance(S)
        try:
            while True:
                print A.next()
        except IndexError:
            print "C'est fini"
     
    main()
    Je mettrais ma main à couper qu'un regex bien fait sera plus rapide que ton algorithme. Et surtout plus facile à coder.
    De plus, il est possible d'avoir un itérateur grace à la méthode finditer d'un pattern compilé.

  17. #17
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    J'ai donné une solution plus haut avec les regex / "finditer" (message #10) et, effectivement, il est difficile de faire un code plus simple (3 lignes).

    Cependant, cela nécessite que le traitement ne demande pas un changement de motif en cours de parcours en fonction de ce qu'on a déjà trouvé.

    Dans ce dernier cas, on peut utiliser les regex mais avec gestion d'un index et passage de cet index à l'appel de search() ou de match() afin que la recherche du motif commence à partir de cet index. C'est un peu plus complexe (une douzaine de lignes) mais ça permet des changements "contextuels" du motif pendant le parcours du texte. Par exemple, pour parcourir une chaine de caractère dans un code source.

    Mais, bien sûr, il ne s'agit pas d'être "pour" ou "contre" les regex. si on peut décrire ici toutes les solutions possibles (et c'est enrichissant), on ne peut pas juger de leur pertinence sans en connaitre plus sur le problème à résoudre.

    Tyrtamos

  18. #18
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    Citation Envoyé par Zavonen Voir le message
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    def avance(S):
        i=0
        while True:
            Mot=''
            while not S[i].isalpha():
                i+=1
            while S[i].isalpha():
                Mot+=S[i]
                i+=1
            yield Mot        
     
     
    def  main():
        S=" Tra la la"
        A=avance(S)
        try:
            while True:
                print A.next()
        except IndexError:
            print "C'est fini"
     
    main()
    Cette solution me plait bien...

    Pour ou contre les regex ? Le gros intérêt des regex est de donner la possibilité à l'utilisateur et non plus au programmeur de définir ses types de mots. Sinon je dois avouer que je ne suis pas très fan des regex et que j'ai tendance à parcourir les chaînes directement. Cela ne m'empêche pas de vouloir comprendre comment fonctionne les regex.

  19. #19
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Citation Envoyé par rambc Voir le message
    Cela ne m'empêche pas de vouloir comprendre comment fonctionne les regex.
    Tu trouveras sur ce site un tutoriel réellement bien fait sur les regex. je suis sur qu'après avoir lu et intégré ce tuto tu seras un grand fan de regex :p
    http://www.regular-expressions.info/

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/05/2010, 17h01
  2. Remplacer un mot entier par un autre dans une chaîne de caractères
    Par clemini dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 19/02/2009, 14h39
  3. Compter nombre de mots dans une chaîne.
    Par xVINCEx dans le forum C++
    Réponses: 22
    Dernier message: 24/11/2004, 13h33
  4. Suppression de mots dans une chaîne
    Par psychomatt dans le forum Langage
    Réponses: 7
    Dernier message: 06/08/2004, 15h34
  5. Comptage de mots dans une chaîne
    Par kikinou dans le forum Pascal
    Réponses: 10
    Dernier message: 01/01/2003, 02h27

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