Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Extraction des données à partir du texte (Python)

+2 votes

Bonjour,
je ne sais si l'equivalent de la lib "commonregex" existe pour le texte Français.
en gros je veux extraire des emails, numéro de téléphone, l'url d'un site internet et adresses à partir du texte.
exemple:

"test mail mail@yahoo.fr, site internet de la compagnie: http://yahoo.fr, contact: 0102012020 addresse postale: 13 rue victor hugo paris 15 "

Email : mail@yahoo.fr
Site : http://yahoo.fr
Telephone: 0102012020
Adresse : 13 rue victor hugo paris 15

Merci

demandé 6-Jul par anonyme

un peu bourrin, mais dans un premier temps (ne connaissant pas la structure exact des données à parser) :
[^ ]+@[^ ]+.[^ ,]{2,3} match l'adresse mail
https?://[^ ]+.[^ ,]{2,3} match une url de site web (http ou https)
[0-9]{10} match un numéro de téléphone sur 10 chiffres. Sera KO en cas de numéro avec indicatif (+33)
+[0-9]{2}\s[0-9]{9} pour un numéro avec indicatif du style +33 102012020
(?<=addresse postale:).*$ va sélectionner tout ce qu'il y a après "adresse postale:" y compris le dernier ", il faudra donc soit améliorer la regex soit faire un substitute du char.

en espérant que ça dépanne :)

1 Réponse

+1 vote

Ce n'est pas bien difficile a réaliser sans lib, encore plus si ton texte est un tant soit peu structuré (dans ce cas, je qualifierais même l'usage de regex d'anti-pattern, vu que ce sera plus nuisible qu'autre chose).

Au besoin, tu peux utiliser directement les patterns proposées par la lib que tu cites, en les modifiant si nécessaire. En revanche, pour extraire l'adresse, ça ne va pas le faire simplement avec une regex, que le texte soit en français ou non d'ailleurs.

Si ton texte est structuré, il faudrait préciser de quelle façon, pour que l'on puisse t'orienter sur une solution adaptée.

répondu 8-Jul par yoch (2,494 points)
...