Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1859 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Cherche regex spécifique

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Cherche regex spécifique

n°2341882
tompouss
Petit chat
Posté le 21-11-2019 à 09:50:15  profilanswer
 

Bonjour,
 
 
je suis à la recherche d'une regex qui matcherait les chaines de caractères contenant au moins:
 
3 caractères alphabetiques, un chiffre (>=1, mais pas que des 0) et un espace.
 
ex: "rue du pont,6" doit matcher
ex: "rue du pont 0" ou "rue du pont 00" ne doit pas matcher
 
J'en ai déjà testé plusieurs dont un qui fonctionne très bien en Java mais pas avec ma version de python (3.7 sous windows)  :cry: :
 
(je trouve fou que les regex ne soient pa compatibles d'un language à un autre, ou alors je m'y prend mal)  
 
 
 

Code :
  1. regex= "(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]+"
  2.             match = re.match(regex, valueToTest)
  3.          
  4.             if match != None:
  5.              
  6.                 value_is_valid= True


 
Merci bcp pour votre aide


Message édité par tompouss le 21-11-2019 à 09:54:52

---------------
collectionneur de pâtes thermiques
mood
Publicité
Posté le 21-11-2019 à 09:50:15  profilanswer
 

n°2341944
MaybeEijOr​Not
but someone at least
Posté le 21-11-2019 à 15:01:50  profilanswer
 

Bonjour,

 

J'ai un truc un peu dégueu :

Code :
  1. (?=[1-9][0-9]*).*(?=[\w ]{3,}(?= ))|(?=[\w ]{3,}(?= )).*(?=[1-9][0-9]*)
 

edit : petite correction.


Message édité par MaybeEijOrNot le 21-11-2019 à 17:28:35

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2341952
mathieuu
Posté le 21-11-2019 à 16:49:38  profilanswer
 

j'ai pas testé en python mais j'aurai dit :  
 

Code :
  1. regex= "\D{3,}\d "


 
EDIT : ah un peu trop simple j'ai oublié que ça doit être un chiffre positif
 
 

Code :
  1. regex = "\D{3,}[1-9]\d* "


 
 
et après si c'est trop violent le \D on peut préciser un ensemble de caractère qu'on autorise et qu'on en veut 3, ensuite des caractères qu'on s'en fou puis un chiffre entre 1 et 9 suivi d'un nombre quelconque et d'un espace  
 

Code :
  1. [a-zA-Z]{3,}.*[1-9]\d*


Message édité par mathieuu le 21-11-2019 à 17:01:53
n°2341961
MaybeEijOr​Not
but someone at least
Posté le 21-11-2019 à 17:40:53  profilanswer
 

Pour une adresse, cela me semble pas mal :
 

Code :
  1. ([1-9][0-9]*)?(?(1).*[a-zA-Z]{3,}(?= )|[a-zA-Z]{3,}(?= ).*[1-9][0-9]*)


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2342052
TotalRecal​l
Posté le 25-11-2019 à 07:07:53  profilanswer
 

Pour la regex je vous laisse vous amuser, mais je tiens juste à signaler que foutre des masques de validation stricts sur un truc aussi variable qu'une adresse c'est un très bon moyen d'avoir des emmerdes :o

 

Et dans ton exemple t'es pas clair, en plus des 0 y a une virgule qui disparait en chemin.

 

Pour l'histoire de la compatibilité il y a plusieurs normes de regex : ecmascript (=javascript, donc fréquent dans les exemples du web), perl (="pcre" ), posix... Les langages pas trop cons proposent de spécifier le type de regex à utiliser lorsque tu les déclares.
Et après y a des variantes dans les variantes (genre pour introduire dans certains langages des trucs en plus)
Bon courage, c'est un cauchemar à maitriser vraiment :o

 

edit : quelques unes des nuances dans le cas de .Net par exemple qui permet de spécifier le type : https://docs.microsoft.com/en-us/do [...] g-behavior


Message édité par TotalRecall le 25-11-2019 à 07:21:41

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2342053
MaybeEijOr​Not
but someone at least
Posté le 25-11-2019 à 09:23:45  profilanswer
 

Il n'est pas très strict pour le coup, il demande juste qu'il y ait au moins plus de 3 lettres consécutives et un numéro de voie.
Néanmoins, pas certain que le numéro de voie soit obligatoire dans tous les cas, notamment avec les boîtes postales (mais bon là on a un nombre qui fait que ça passe).


Message édité par MaybeEijOrNot le 25-11-2019 à 09:24:04

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Cherche regex spécifique

 

Sujets relatifs
Aide RegEx pour extraire une sous chaine entre crochetSoucis Regex et string.search javascript
Nettoyage HTML avec regex negative lookaheadREGEX besoin d'aide
Regex pour nombresREGEX, ExtracPDF, et dictionnaire
Peux-t'on filtrer le résultat d'un groupe via une regex ?Regex PHP (new line)
Regex pour remplacement de &Aide pour regex
Plus de sujets relatifs à : Cherche regex spécifique


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR