En fait, j'ai un problème très complexe, mais je l'ai réduit ici à la partie la plus essentielle avec quelques données fictives.Regex pour ajouter des lignes de texte supplémentaires entre certaines lignes?
Dire que j'ai le texte suivant:
a
aa
aaa
aaaa
aaaa
aaaaa
a
aa
aaa
aaaa
aaaaa
aaaaaa
aaaa
a
Ce que je voudrais faire est, par exemple lorsqu'une ligne de 4 a de est suivie d'une ligne de 1 a. Je voudrais ajouter une ligne de 3 a de après la ligne de 4, et ajouter une ligne de 2 a de après la ligne de 3. Ainsi, le résultat serait:
a
aa
aaa
aaaa
aaaa
aaaaa
aaaa
aaa
aa
a
aa
aaa
aaaa
aaaaa
aaaaaa
aaaaa
aaaa
aaa
aa
a
J'ai essayé le regex folowing en EditPad:
find: \r?\n(a*)aa\r?\n\1\r?\n
repl: \n\1aa\n\1a\n\1\n
Mais cela ne fonctionne que lorsque la ligne suivante a exactement 2 une est inférieure à la précédente .. Je sais que je pourrais écrire un tas d'expressions régulières comme celle-ci, à travailler pour la différence de 2 a, 3 a, 4 a, 5 a et ainsi de suite. Mais j'aimerais avoir une seule regex. Cela ne me dérange pas si je devrais exécuter cette regex plusieurs fois si ..
Dans votre exemple, vous avez dit, « quand une ligne de 4 a de est suivie d'une ligne de 1 a », mais vous avez dit plus tard, « Mais cela ne fonctionne que lorsque la ligne suivante a exactement 2 a de moins que la précédente ". Je ne comprends pas. Vous devriez reformuler votre question clairement. Je suis sûr que beaucoup de gens ici sont confus comme moi. – Vantomex
ouais, c'était un exemple. Ce que je voulais dire, c'est que si j'ai 4 a suivi de 1 a, je veux ajouter une ligne de 3 a et une ligne de 2 a entre ces lignes. Donc ce que je veux faire est d'ajouter des lignes avec des a pour que chaque ligne en ait exactement une de moins que la précédente, sauf si la ligne a plus de a que la précédente. Donc ce que je voulais dire par "ceci ne fonctionne que lorsque la ligne suivante a exactement 2 a moins que le précédent" est que j'ai un script qui ajouterait une ligne de 3 a entre une ligne de 4a suivie d'une ligne de 2 a. Je sais que ce n'est pas très bien formulé mais il suffit de regarder l'exemple –