Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 16 February 2011 19:11

fansz
Participant actif
Date d'inscription: 12 Jan 2010
Messages: 104

String searcher expression régulière

Bonjour ,

Avec le transformer  String searcher Je voudrais récupérer des nombres dans un champs contenant du texte : il s'agit d'un champ adresse et je voudrais donc séparer le numéro du nom de la voie

Quelle expression régulière me permettrait extraire tout les nombres de 1 à 999 par exemple ?

J'ai essayé [1-999]* mais je n'ai pas les nombres 10 100 etc ...

Pouvez vous m'aidez?

mERCI

Dernière modification par fansz (Wed 16 February 2011 19:13)

Hors ligne

 

#2 Thu 17 February 2011 09:16

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: String searcher expression régulière

Aloha
Essayez [0-9]* ce qui correspond à un nombre composé de chiffre de 0 à 9.
Cordialement,


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#3 Thu 17 February 2011 15:56

fansz
Participant actif
Date d'inscription: 12 Jan 2010
Messages: 104

Re: String searcher expression régulière

Oui merci de votre réponse je crois que j'ai posté trop vite

ce que je voulais sait pouvoir récupérer tout les chiffres dans une chaîne de caractères ce qui est possible  en faisant [0-9]+

Voir   ce tuto plutôt bien fait

Dernière modification par Pierre (Fri 25 February 2011 11:35)

Hors ligne

 

#4 Fri 25 February 2011 11:16

MaelReboux
Participant actif
Lieu: Roazhon / Rennnes
Date d'inscription: 24 Aug 2010
Messages: 72

Re: String searcher expression régulière

Bonjour,

[0-9]+ récupérera effectivement tous les chiffres, sans limitation de longueur.
Si limitation de longueur, il faut préciser comme ceci : [0-9]{1,3}.

Je suis moi-même en galère sur des tests de formatage d'adresses. Ci-dessous des exemples d'adresses autorisées :
123
12b
12A
12bA

b t q correspondent à bis, ter ou quater
A B C -> P correspondent à des immeubles

je dois tester la présence d'espace (non autorisés) et le respect du motif.

j'ai abouti à l'expression suivante :    ([0-9]{1,3})([b|t|q])?([A-P])?

ensemble 1 = ([0-9]{1,3}) = suite de 1 ou n chiffre
ensemble 2 = ([b|t|q])? = 0 ou n fois les caractères b t ou q
ensemble 3 = ([A-P])? = 0 ou n fois des caractères entre A et P

Mais elle laisse passer cette adresse, par exemple :  31z.

Merci d'avance pour votre aide.


Service SIG Rennes Métropole
AITF : Coordinateur GT voies-adresse
Et un peu OSM Bzh

Hors ligne

 

#5 Fri 25 February 2011 11:33

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: String searcher expression régulière

Aloha
Avez-vous essayé :

Code:

 ([0-9]{1,3})([b|t|q|z])?([A-P])?

?
PS. On ne sait jamais, mais le [0-9]+ aurait l'avantage d'être actualisé le jour ou apparaîtrait le 1200 rue du Thabor


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#6 Fri 25 February 2011 11:43

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1160

Re: String searcher expression régulière

MaelReboux a écrit:

Bonjour,

[0-9]+ récupérera effectivement tous les chiffres, sans limitation de longueur.
Si limitation de longueur, il faut préciser comme ceci : [0-9]{1,3}.

Je suis moi-même en galère sur des tests de formatage d'adresses. Ci-dessous des exemples d'adresses autorisées :
123
12b
12A
12bA

b t q correspondent à bis, ter ou quater
A B C -> P correspondent à des immeubles

je dois tester la présence d'espace (non autorisés) et le respect du motif.

j'ai abouti à l'expression suivante :    ([0-9]{1,3})([b|t|q])?([A-P])?

ensemble 1 = ([0-9]{1,3}) = suite de 1 ou n chiffre
ensemble 2 = ([b|t|q])? = 0 ou n fois les caractères b t ou q
ensemble 3 = ([A-P])? = 0 ou n fois des caractères entre A et P

Mais elle laisse passer cette adresse, par exemple :  31z.

Merci d'avance pour votre aide.


Bjour,
L'expression rationnelle laisse passer 31z parce que le sous ensemble 31 match avec votre expression.
Théoriquement votre expression se traduit comme ceci :
je cherche une sous chaine d'une chaine qui à la structure suivante : de 1 à 3 chiffres, suivi de n ( b OU t OU q), suivi de n ( A OU P).

Je pense que vous devriez inclure dans votre expressions les symboles de début (^) et fin ($) de chaine.

Cordialement.

PS: je ne sais pas ce que c'est que FME, ma reflexion est tout a fait théorique.

Hors ligne

 

#7 Fri 25 February 2011 11:48

MaelReboux
Participant actif
Lieu: Roazhon / Rennnes
Date d'inscription: 24 Aug 2010
Messages: 72

Re: String searcher expression régulière

@pierre
Euh : non. je veux justement exclure (mettre en erreur) tout ce qui sort du motif. L'adresse "31z" n'est pas conforme.

Normalement, une adresse à 4 chiffres ne peut pas exister. Je préfère la sortir en erreur pour la contrôler "manuellement".

@Sgio Muneta
je n'ai plus aucun match si j'encadre avec ^...$


Service SIG Rennes Métropole
AITF : Coordinateur GT voies-adresse
Et un peu OSM Bzh

Hors ligne

 

#8 Fri 25 February 2011 12:10

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1160

Re: String searcher expression régulière

Bjour,

C'est que les chaines passées en entrées ne correspondent pas à l'expression.
Vos chaines peuvent contenir des espaces au début ou a la fin  ?
A tout hasard, encadrez votre expression ainsi ^(expression)$.

Hors ligne

 

#9 Fri 25 February 2011 13:33

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: String searcher expression régulière

Aloha,
^([0-9]+[b|t|q]?[A-P]?$)|([0-9]+$)
@+


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#10 Fri 25 February 2011 15:15

MaelReboux
Participant actif
Lieu: Roazhon / Rennnes
Date d'inscription: 24 Aug 2010
Messages: 72

Re: String searcher expression régulière

Ça marche ! Merci Pierre.

Tant que l'on y est, comment s'y prendre si je veux exclure tout espace ?
Actuellement j'utilise un string searcher avec un simple espace pour filtrer en amont.

Un truc du genre ![ ] ?


Service SIG Rennes Métropole
AITF : Coordinateur GT voies-adresse
Et un peu OSM Bzh

Hors ligne

 

#11 Fri 25 February 2011 15:49

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: String searcher expression régulière

Veux-tu exclure toute chaîne comportant un espace ou supprimer les espaces en sortie ?


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#12 Fri 25 February 2011 16:19

MaelReboux
Participant actif
Lieu: Roazhon / Rennnes
Date d'inscription: 24 Aug 2010
Messages: 72

Re: String searcher expression régulière

Il faut tester si la chaîne contient un ou plusieurs espaces, n'importe-où dans la chaîne.

Je sais déjà le faire mais je me demandais si c'était possible de rajouter cela dans l'expression  ^([0-9]+[b|t|q]?[A-P]?$)|([0-9]+$)  ?


Service SIG Rennes Métropole
AITF : Coordinateur GT voies-adresse
Et un peu OSM Bzh

Hors ligne

 

#13 Fri 25 February 2011 16:29

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: String searcher expression régulière

En fait avec l'expression dont j'ai fais part, il n'y a pas besoin de test sur les espaces :
^([0-9]+[b|t|q]?[A-P]?$)|([0-9]+$)
La première branche du choix débute par 1...n chiffres suivis d'un b ou d'un t, puis d'une lettre entre A et P en majuscule, puis se termine (le $). Donc une chaîne du type '31tA ' ne passe pas.
La seconde branche du choix débute par 1...n chiffre et se clôture. Donc '31 ' ne passe pas.
Sinon, ![ ] exclue bien les espaces.


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#14 Fri 25 February 2011 19:39

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1160

Re: String searcher expression régulière

Bsoir,
juste pour signaler un truc sympa : http://www.annuaire-info.com/outil-refe … reguliere/ pour faire des tests rapides.

Hors ligne

 

#15 Mon 28 February 2011 08:41

MaelReboux
Participant actif
Lieu: Roazhon / Rennnes
Date d'inscription: 24 Aug 2010
Messages: 72

Re: String searcher expression régulière

Merci pour votre aide.

Personnellement, j'ai trouvé The RegexCoach qui est très très bien : http://weitz.de/regex-coach/


Service SIG Rennes Métropole
AITF : Coordinateur GT voies-adresse
Et un peu OSM Bzh

Hors ligne

 

Pied de page des forums

Powered by FluxBB