Comment trouver tout ce qui va après symols #TR=
et il est à l'intérieur [ ]
en utilisant re module. Par exemple #TR=[ dfgg dfgddfg dgfgf dgdgdg dfgfg ]
Python. Expression régulière
Répondre
import re
txt = '#TR=[ dfgg ] a kuku #TR=[ala ma kota]'
Si vous voulez rechercher uniquement la première occurrence de ce modèle, utiliser:
matches = re.search('#TR=\[([^\]]*)\]', txt)
if matches:
print(repr(matches.group(1)))
' dfgg dfg '
Si vous voulez trouver toutes les occurrences dans le texte, utilisez:
matches = re.findall('#TR=\[([^\]]*)\]', txt)
if matches:
print(matches)
[' dfgg ', 'ala ma kota']
N'oubliez pas de vérifier si les caractères que vous recherchez ont special meaning dans les expressions régulières (par exemple [
ou ]
). Si elles sont spéciales, échappez-les avec la barre oblique inverse: \[
. Notez également que, par défaut, les expressions régulières sont "gourmandes", ce qui signifie qu'elles essaient d'obtenir autant de texte que possible pour correspondre au motif; donc si vous utilisez .*
(ce qui signifie « correspond à tout caractère sauf retour à la ligne », details) au lieu de [^\]]*
(qui signifie « match jusqu'à la ]
se trouve, et arrêter avant »), trop beaucoup de texte pourrait être adapté:
matches = re.findall('#TR=\[(.*)\]', txt)
if matches:
print(matches)
[' dfgg ] a kuku #TR=[ala ma kota']
Vous pouvez également utiliser le modificateur « non gourmand » ?
dans votre modèle, après la qualification (*
, +
) qui permet aux « les-moins-caractères le mieux » (correspondant à utiliser *?
, +?
). Le résultat pourrait être plus lisible:
'#TR=\[(.*?)\]'
au lieu de:
'#TR=\[([^\]]*)\]'
Il y a un excellent outil en ligne pour tester vos modèles as-you-Type: RegExr by Grant Skinner.
(? < = # TR = [) [^]] * (? =])
import re
# compile the regex
exp = re.compile('.*\[(.*)\].*')
txt = r"#TR=[ dfgg dfgddfg dgfgf dgdgdg dfgfg ]"
match = exp.match(txt)
# grab the text between the square brackets
result = match.group(1)
Désolé, j'ai édité votre réponse par erreur, destinée à modifier la mienne. J'ai inversé mon changement. –
- 1. python: expression régulière multiligne
- 2. Expression régulière Python Correspondance: ####
- 3. expression régulière python aide
- 4. Python Expression régulière Question
- 5. Expression régulière en Python?
- 6. python expression régulière pour retweets
- 7. Expression régulière Python avec [: numeric:]
- 8. paramétrées expression régulière en Python
- 9. expression régulière
- 10. En utilisant Python Expression régulière dans Django
- 11. lien python correspondant à une expression régulière
- 12. Comment créer une expression régulière en Python?
- 13. Python et expression régulière avec Unicode
- 14. Comment convertir cette expression régulière en Python
- 15. URL de Gruber Expression régulière en Python
- 16. Expression régulière recherche/remplacement aide nécessaire, Python
- 17. Expression régulière python sur plusieurs lignes
- 18. Expression régulière Python pour l'analyse HTML (BeautifulSoup)
- 19. Python expression régulière pour plusieurs balises
- 20. Python expression régulière pour correspondre fichier date.txt
- 21. Expression régulière pour trouver une expression régulière?
- 22. expression régulière "contient" une autre expression régulière
- 23. Expression régulière correspondant à tout sauf une expression régulière donnée
- 24. expression régulière
- 25. Expression régulière
- 26. expression régulière
- 27. Expression régulière
- 28. Expression régulière pour vérification
- 29. Expression régulière 'Split' fonction
- 30. Expression régulière vérification supplémentaire
Attendez-vous à ce que '[]' imbrique dans votre niveau supérieur de '[]'? – martineno