著者: ALD 日付: To: guilde 題目: Re: insérer ";" entre CP et ville
Le 15/09/2012 07:20, Patrice Karatchentzeff a écrit : > Le 15 septembre 2012 01:52, ALD <dieudonne.alain@???> a écrit :
>> Merci PK mais ça ne fonctionne pas.
>>
>> j'ai fini par faire un truc qui va presque bien:
>>
>> sed 's/\([0-9][0-9]\{4,5\}\)/&;/'
>>
>> je dis presque car:
>>
>> si un numéro de rue est composé de 4 chiffres (1350 rue tartempion), il va
>> etre détecté par sed qui va lui mettre un séparateur ";" derriére et du coup
>> n'en mettra pas au vrai code postal.
>>
>> si je rajoute "g" entre le dernier "/" et le "'":
>> sed 's/\([0-9][0-9]\{4,5\}\)/&;/g'
>> ça ne regle qu'une partie du problème: le code postal aura lui aussi un";"
>> mais également tous les autres nombres à 4 ou 5 chiffres de la ligne
>>
>> seront aussi affectés les N° de telephones si ils sont groupés par 4 avec
>> des indicatifs internationaux; ex 0033 476 xxx xxx ou plus si ils ont été
>> mal saisis ( on peut trouver tous les types de groupements)
>>
>> De plus, je ne peux pas limiter le choix à seulement une seule chaine de 5
>> chiffres car certains codes postaux n'en comportent que 4 (le "0" du début
>> n'est pas toujours saisi; ex Cannes: 06400 ou 6400)
> Dans ce cas, tu as la possibilité dans ta regex d'exclure le mot
> rue||avenue||impasse
>
> sed 's/\([0-9][0-9]\{4,5\}\)/&;/
>
> sed 's/([\d]{4,5})\s(^rue|avenue|impasse)/$1;$2/g
>
> Pas le temps de tester pour valider la syntaxe mais c'est la seule
> idée : tu auras du mal à compter les occurrences...
> Hello,
j'ai quelques questions sur ta regex car je ne parviens pas à tout
comprendre:
pourquoi [\d]? je me doute que c'est pour dire que la chaine est
numérique (d=digital?) mais je n'avais jamais vu cette notation.
est-ce que l'absence de "\" devant chaque "(", ")", "{", "}" est voulue?
(ou c'est juste pour aller vite et me donner une piste de réflexion)
et dernière chose: que sont $1 et $2? pourquoi $? (€ c'est pas mieux? ok
je sors)
Merci
Ce n'est que ma deuxième journée sur 3650 pour etre au point sur les
regex (si tant est qu'il soit possible d'etre au point sur ce truc) ;-)