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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

regex

n°1336444
phdenis
Posté le 29-04-2013 à 19:00:49  profilanswer
 

Bonjour à tous,
 
Je cherche à séparer une chaine contenant soit un séparateur ";" ou " ;"  ou bien un saut de ligne "\n".
 
Mon texte est du genre:

Code :
  1. AAA-BBB-CCC-0010; AAA-BBB-CCC-0020 ; AAA-BBB-CCC-0030
  2. AAA-BBB-CCC-0050


 
J'ai pensé faire une regex de la forme:

Code :
  1. ([^\;\s\n]+)

 
mais cela ne marche pas comme je veux ...
 
Après je me suis demandé comment faire pour préciser dans une regex, que je voulais prendre la 3e occurence ou la 4e occurence d'un pattern ?
 
Y-a-t-il quelqu'un qui masterise en regex et qui pourrait m'aider ?
 
Merci pour votre aide.

mood
Publicité
Posté le 29-04-2013 à 19:00:49  profilanswer
 

n°1336476
mrbebert
Posté le 29-04-2013 à 23:03:29  profilanswer
 

J'imagine que les données seront traitées ligne par ligne, donc le "\n" n'est pas un séparateur de champ :??:  
Le pattern " *; *" ne suffit pas ?


Message édité par mrbebert le 29-04-2013 à 23:03:41

---------------
Doucement le matin, pas trop vite le soir.
n°1336520
phdenis
Posté le 30-04-2013 à 00:41:43  profilanswer
 

Bonsoir,
Les données ne sont pas traitées ligne par ligne.

n°1338977
blazkowicz
Posté le 05-06-2013 à 23:26:01  profilanswer
 

je suis nul en sed et awk mais pourquoi pas remplacer toutes les ; par des \n (à supposer que le fichier soit intégralement comme ça

 

j'ai donc ceci, en copiant-collant honteusement un sed trouvé sur google pour enlever les espaces au début de chaque ligne

 

tr ";" \\n < test | sed -e 's/^[ \t]*//'

 

ce qui me donne

 

AAA-BBB-CCC-0010
AAA-BBB-CCC-0020
AAA-BBB-CCC-0030
AAA-BBB-CCC-0050

 

avec un espace à la fin de la deuxième ligne, qu'on pourrait aussi enlever, donc :
tr ";" \\n < test | sed 's/^[ \t]*//;s/[ \t]*$//'
on pourrait ainsi se contenter d'attraper la n-ième ligne pour avoir la valeur. sed '/^$/d' supprime toutes lignes vides.

 

Sinon, je ne comprends pas trop ce que tu entends par "Je veux séparer une chaîne" ni ce qu'est censée faire ta regexp.


Message édité par blazkowicz le 05-06-2013 à 23:30:20

Aller à :
Ajouter une réponse
 

Sujets relatifs
[Résolu] script sieve, regex et "crochets carrés"RewriteRule et Regex
Plus de sujets relatifs à : regex


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR