0
votes

Comment obtenir le texte séparé par une virgule après un mot clé

donc j'ai une chaîne qui a plusieurs motifs tels que

s1 = "foo, bar"

s1 = "x, y"

s2 = "bonjour, hi"

S3 = "bar, foo."

Je me demande comment je peux obtenir les cordes séparées par une virgule (insérer du texte aléatoire ici).

Donc de cet exemple, je veux obtenir des chaînes ["foo", "bar"] et ["x", "y"] quand je suis Vous recherchez "s1" , et "hello" & "hi" quand je cherche s2 , etc.

merci!

EDIT: Supposons utiliser .split (',') est irréalisable en raison d'un grand nombre de virgules en dehors de ce modèle spécifique que j'ai énuméré


6 commentaires

mystring.split (',') retourne une liste de chaque élément séparé par des virgules


J'ai mis à jour ma question. Supposons que l'utilisation de .split (',') est irréalisable en raison d'un grand nombre de virgules dans la chaîne en dehors de ce modèle spécifique.


re module sur python


Comment puis-je l'utiliser dans ce cas?


Des points-virgules dans votre chaîne actuelle? Pourriez-vous nous donner votre véritable chaîne et votre rendement attendu réel?


S'il vous plaît être spécifique de ces modèles se produisent. Si Split ne fonctionne pas, vous voulez probablement écrire quelque chose comme "Blablabla Text1, Text2 Blablabla" ?


3 Réponses :


0
votes

Vous pouvez utiliser: xxx

Il doit renvoyer une liste de chaque élément.


1 commentaires

J'ai mis à jour ma question. Supposons utiliser .split (',') est irréalisable en raison d'un grand nombre de virgules en dehors de ce modèle spécifique que j'ai mentionné.



0
votes

Voici comment vous pouvez utiliser le module re code> pour scinder une chaîne par un délimiteur donné:

import re

re.split(", ", my_string)


0 commentaires

1
votes

La question a été modifiée, mais pour la chaîne d'origine: xxx

Vous pouvez utiliser un motif pour correspondre à la pièce spécifique, puis utiliser re.split pour diviser sur une virgule et une place optionnelle. . xxx

explication

  • \ bs1:? match S1: et espace optionnel
  • ( capture groupe 1
    • \ w + (?:,? \ w +) * Match 1+ caractères Word, répéter éventuellement la communication de la virgule, l'espace optionnel et 1+ caractères de mots
    • ) Fermer le groupe 1

      Démo Regex | Demo Python

      Exemple de code (python 3) xxx

      sortie xxx


0 commentaires