43 votes

Obtenir la chaîne entre parenthèses en Python

J'ai un exemple de chaîne de caractères <alpha.Customer[cus_Y4o9qMEZAugtnW] active_card=<alpha.AlphaObject[card] ...>, created=1324336085, description='Customer for My Test App', livemode=False>

Je veux seulement la valeur cus_Y4o9qMEZAugtnW et NON card (qui est à l'intérieur d'un autre [] )

Comment puis-je le faire de la manière la plus simple possible en Python ? Peut-être en utilisant RegEx (ce que je ne sais pas faire) ?

3voto

Vous pouvez également utiliser

re.findall(r"\[([A-Za-z0-9_]+)\]", string)

s'il y a de nombreuses occurrences que vous souhaitez trouver.

Voir aussi pour plus d'informations : Comment trouver toutes les correspondances d'une expression régulière en Python ?

0voto

Pankaj Pande Points 233

Que pensez-vous de cela ? Exemple illustré à l'aide d'un fichier :

f = open('abc.log','r')
content = f.readlines()
for line in content:
    m = re.search(r"\[(.*?)\]", line)
    print m.group(1)

J'espère que cela vous aidera :

Magic regex : \[(.*?)\]

Explication :

\[ : [ est un méta-caractère et doit être échappé si vous voulez le faire correspondre littéralement.

(.*?) : tout faire correspondre de manière non avide et le capturer.

\] : ] est un méta-caractère et doit être échappé si vous voulez le faire correspondre littéralement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X