Chaîne de caractères

Bonjour,

J'ai les différentes chaînes de caractères suivantes :

str1 = "vendredi 13 Janvier 2012 à 16:45:50 -0800 (PST)"
str2 = "De: mnat.legrand@yahoo.fr"
str3 = "A: fab.pierre@gmail.com, gg.giraud@hotmail.fr, vcas@yahoo.com
              fifi.perrec@yahoo.fr"
str4 = "Objet: Re: Invitation pour anniversaire"
str5 = "Objet: 2- Enquête/Information E-Mail 5-14- 01"


J'aimerai, avec le langage de programmation python, construire des motifs me permettant d'extraire les sous-chaînes suivantes :

de str1 extraire : "16:45:50"
de str2 extraire : "mnat", "legrand", "yahoo.fr"
de str3 extraire : IDEM que pour str2
de str4 extraire : "Invitation pour anniversaire"
de str5 extraire : IDEM que pour str4

Pouvez-vous m'aider, s'il vous plaît. D'avance je vous remercie pour vos suggestions.

4 réponses

  1. je peux t'aider avec la langage java en utilisant subString(S,i)... je sais pas si ça la même en python
    1. Malheureusement c'est python que j'utilise et je pense que les méthodes/instructions Java ne marcheront pas. Si jamais tu connais quelqu'un sur ce forum qui est susceptible de me renseigner, s'il te plaît communique lui mon message. Je te remercie d'avance ;)
    2. je veux poser la question si quelqu'un sais la langue python
    3. Merci beaucoup pour ton aide, j'ai vraiment besoin de ces informations ;)
  2. Bonjour,
    Voici un exemple rapide sur l'utilisation de ce que tu cherche, je l'ai testé et ça marche,
    si tu trouve le moindre problème revient me voir

    Aller bon courage et bon code :)
    1. Bonjour, et merci de ta réponse mais je ne vois pas très bien le rapport entre le langage de programmation python et l'application aller que tu me proposes de télécharger et qui d'après ce que j'ai lu est destiné à faciliter l'apprentissage du français aux jeunes enfants ;)
    2. Je ne sais pas si tu parle sérieusement ou tu joue au con, en tous cas je n'ai pas de temps pour réponde à ce genre de remarque débile
    3. Contributeur
      du calme malaik5, c'est toi qui a fait une petite bourde.
      relit ton message :
      1- il n'y a pas d'exemple contrairement à ce que tu dit
      2- tu tapes "Aller" et ce mot est un lien, probablement mit automatiquement par CCM, qui renvoie vers un logiciel.
      Au final ton message est bancale et la réaction de selver est plutôt naturelle. DE plus, il n'a pas été agressif, lui.
    4. Bonjour,
      Oui c'est vrai que je me suis trompé, je voulais mettre un bout texte que j'ai oublié de copier et je voulais tous simplement utiliser le mot aller pas faire un lien vers un logiciel
      du coup tiens le morceau de code :

      myString="Hello there !bob@"
      mySubString=myString[myString.find("!")+1:myString.find("@")]
      print (mySubString)
  3. Contributeur
    l'idéal c'est alors d'utiliser les expressions régulière.
    Par exemple pour le premier str1, c'est un truc du genre [:num:][:num:]:[:num:][:num:]:[:num:][:num:]
    pour plus de détails sur les regex : https://docs.python.org/3/howto/regex.html
    ensuite, str2, c'est une adresse mail, le regex d'une adresse mail, c'est [:alnum:._-]+@[:alnum:._-]+ c'est dire des caractères alphanumérique plus le point, le souligné le tiret (peut être d'autre) à au moins un exemplaire de chaque coté d'un '@'. Une fois le(s) courriel(s) extrait, il suffit de faire des split avec @ et . comme séparateurs.
    Pour les deux derniers, je pense que tu trouvera.

    J'ai écrit les expressions régulière à la manière de GREP, mais il doit y avoir l'équivalent dans le lien. Sinon, cherche un peu.
    1. Contributeur
      j'ai trouvé, l'équivalent de :num: c'est \d, donc :
      re.match(\d\d:\d\d:\d\d,str1)
      devrait donné ce que tu cherches.
      pour le courriel, ça doit être :
      re.match('[\w\.\-]+@[\w\.\-]+',str2)
    2. Effectivement ça marche : avec ce que tu m'as donné j'arrive à récupérer l'heure d'une part et d'autre part je récupère l'ensemble du mail de str2, à savoir, mnat.legrand@yahoo.fr. Tout fonctionne comme un seul bloc et si je tente d'isoler les éléments pour obtenir par ex seulement mnat, cela ne fonctionne plus. Je dois peut être mal m'y prendre, tu aurais des idées toi?
    3. Contributeur
      salut.
      met ce que tu as écris (en réponse, pas en commentaire, ça sera plus clair), je regarderai. Je connais peu les expressions régulières en python, ça semble assez pénible d'obtenir une sous chaine de caractère.
    4. Contributeur
      re.findall('[\w\.\-]+@[\w\.\-]+',str2)