Bonjour,
Je bloque sur une regex qui me permettrait de trouver des saut de lignes d'une chaine qui ne sont pas placés au bon endroit.
problème :
J'ai lu un fichier et stocké le contenu dans une chaine de caractère.
Cette chaine est formatée.
Chaque ligne doit commencée par comme suivant : A ou B ou C suivit d'un point virgule suivit de A ou B suivit d'un point virgule ou de la chaine END.
Exemple
Pour lire je recherche les \n pour ensuite traiter ma ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 A;A; A;B; C;A;
Mais je rencontre un problème que je souhaite résoudre.
dans mes fichiers je me retrouve avec des sauts de lignes au milieu de ma ligne. Du coup je ne traite plus mes lignes correctement.
Vu que mes lignes commencent toutes par la même chose je voulait faire la regex suivante pour retrouver les sauts de ligne intempestifs et les modifier en espace.
Je cherche donc toutes les sauts de lignes qui ne sont pas suivit par la lettre A ou B ou C puis ; puis A ou B ou ;.
J'ai donc un truc du genreMais cela ne retourne pas ce que je veux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part #(\x0A.*)(\x0A)([^A|B|C;A|B;].*\x0A)#
Cela ne me retourne pas tous les sauts de lignes qui sont suivi par un A ou un B ou un C mais cela ne prend pas en compte la chaine complète que je veux.
Exemple:
dans cet exemple, cela ne me retourne que la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 A;B;etc; B;A;etc2; A;B;chaine avec saut de ligne;etc3; A;B;etc4; C;A; chaine avec saut de ligne mais ligne suivantes commençant par lettre de la liste B;etc5; C;A;etc6;
alors que je voudrais avoir la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 A;B;chaine avec saut de ligne;etc3;
Savez vous comment je peux tourner ma regex pour obtenir ce que je souhaite?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 C;A; chaine avec saut de ligne mais ligne suivantes commençant par lettre de la liste B;etc5;
Partager