Remplacement de VIM (en supposant que les séparateurs standard EDIFACT/caractères d'échappement pour le jeu de caractères UNOA sont en cours d'utilisation):
:s/\([^?]'\)\(.\)/\1\r\2/g
Briser la regex:
\([^?]'\)
- chercher '
qui se produit après n'importe quel caractère sauf ?
(le caractère d'échappement standard) et capture ces deux caractères comme le premier atome. Ce sont les deux derniers caractères de chaque segment.
\(.\)
- Capturer un caractère unique à la suite de la terminaison de segment (.-À-dire ne correspondent pas si la terminaison de segment est déjà à l'extrémité d'une ligne)
revisser les matchs sur cette ligne avec une nouvelle ligne entre le segment terminateur et le début du segment suivant.
Sinon, vous pourriez finir avec ceci:
...
FTX+AAR+++FORWARDING?: Freight under Vendor?'
s care.'
NAD+BY+9312345123452'
CTA+PD+0001:Terence Trent D?'
Arby'
...
au lieu de ceci:
...
FTX+AAR+++FORWARDING?: Freight under Vendor?'s care .'
NAD+BY+9312345123452'
CTA+PD+0001:Terence Trent D?'Arby'
...
Dans quelle application seriez-vous d'écrire une macro? –