1
votes

python: analyser la sous-chaîne entre crochets à partir de la chaîne

Quelle est une manière pythonique d'analyser cette chaîne entre crochets:

result = txt.split('[')[1].split(']')[0]

pour obtenir le résultat:

bar

Qu'ai-je essayé :

Comment je le résoudrais et je pense que ce n'est pas très élégant:

txt = 'foo[bar]'

Je pense fermement qu'il existe une bibliothèque ou une méthode qui a un solution plus tolérante et élégante pour cela. C'est pourquoi j'ai créé cette question.


3 Réponses :


0
votes

Une des nombreuses façons, en utilisant slicing :

bar

OU

import re

txt = 'foo[bar]'

m = re.search(r"\[([A-Za-z0-9_]+)\]", txt)
print(m.group(1))

SORTIE:

print(txt[4:].strip("[]"))


0 commentaires

2
votes

Utilisation de Regex.

Ex:

['bar']

Sortie:

import re

txt = 'foo[bar]'
print(re.findall(r"\[(.*?)\]", txt))


0 commentaires

0
votes

Une autre approche du découpage en tranches, en utilisant str.index pour trouver les emplacements des délimiteurs de début et de fin. Une fois que vous obtenez une tranche Python, vous pouvez la faire comme un index dans la liste, sauf que la tranche ne donne pas seulement un seul caractère, mais la plage de caractères du début à la fin.

bar


0 commentaires