J'ai une grande quantité de texte tabulé (souligné) qui manque d'un caractère de puce en tête :
un point
un sous-point
Je veux remplacer chaque tabulation par 2 espaces, et ajouter un tiret devant. Voici le format cible dont j'ai besoin :
- un point
- un sous-point
Trouver :
Je peux utiliser l'expression régulière \t+\S
pour trouver "n'importe quel nombre de tabulations, suivi de tout ce qui n'est pas une espace blanc". Cela fonctionne très bien, et la fonction "trouver" surligne le début de chaque ligne, jusqu'au premier caractère qui n'est pas une tabulation.
Remplacer :
Comment puis-je utiliser une expression régulière pour spécifier "remplacer chaque tabulation par 2 espaces, suivi d'un tiret et d'un espace, suivi du caractère qui n'est pas une tabulation d'origine"? Plus précisément :
- Comment spécifier que le remplacement doit se faire "autant de fois qu'il y a eu de correspondances dans la recherche"? (Ainsi trois tabulations deviendraient six espaces, etc.)
- Comment spécifier littéralement "un tiret puis un espace"?
- Comment spécifier "garder le caractère qui n'est pas une tabulation inchangé"?
Ma recherche m'a conduit à le concept de \1
mais je ne vois pas comment l'utiliser. Mes tests par essais et erreurs n'ont produit que des erreurs.
Mise à jour :
J'ai découvert une chose à propos de \1
: je dois utiliser des parenthèses dans ma chaîne de recherche : (\t+)(\S)
puis utiliser cela dans la partie de remplacement : \1- \2
. Cela m'aide à résoudre les points #2 et #3 ci-dessus, mais je suis toujours perdu pour le point #1 !
Mise à jour ultérieure :
Eh bien - #1 peut être une action de recherche/remplacement non regex simple tant qu'il n'y a pas de caractères de tabulation ailleurs dans le texte. C'est quelque chose que je dois maintenant investiguer !
J'essaie avec Gedit d'Ubuntu mais je pourrais aussi utiliser Notepad++ ou Sublime si vous avez des suggestions spécifiques à l'éditeur.