Une ligne peut avoir 100 colons, mais je veux seulement que le premier côlon sur chaque ligne remplacée par un onglet.
Exemple de données d'entrée (différenciera beaucoup). P>
5b33b9d0a57ff17839bdce76acdd6bcd ::diq23hnjr432ufjn0o0:243r:3rwg:bob@bob.de 5b33b9d0a57ff17839bdce76acdd6bcd 3432rfwediq23hnjr432ufjn0o0:243r:3rwg:bob@bob.de
3 Réponses :
Essayez la recherche et remplacez ci-dessous, dans le mode Regex: explication du motif p> alors, nous remplaçons par les premier et second groupes de capture, séparé par un onglet. p> p> démo h2>
p>
Vous êtes un génie, cette réponse est parfaitement bonne pour moi. Semble travailler super, merci!
Tim, avez-vous besoin de capturer quelque chose après le : code>? Si vous quittez cela et simplement remplacer par 1 \ t code>, ça ne fonctionnera pas aussi?
@paxdiablo Vous avez raison, je l'enverrai un peu. Pas que ma réponse soit mal i>, juste que nous n'avons pas vraiment besoin de capturer la deuxième partie.
Ne suggérait pas que c'était faux, ça marche aussi bien comme ça. C'est juste que ma nature OCD m'a demandé de souligner que pourrait i> plus simple. Les personnes normales peuvent avoir moins d'envie de le faire :-)
Hey désolé mon idiocy, mais je me demande simplement comment puis-je modifier cette regex afin qu'elle supprime la dernière occurrence d'un colon avec un onglet?
Trouver: : ([^:] *) $ code> et remplacer: \ t $ 1 code>
Cela souligne également les données après le dernier côlon (que je ne veux pas arriver) Seul le côlon est ce que je veux. Désolé d'être une douleur lol
Désolé, je n'ai pas vu votre commentaire édité mis à jour de 8mins il y a 8 minutes, fonctionne bien. Merci encore votre génie
Cela dépend de votre moteur de regex (malheureusement, il n'y a pas un moteur de regex em> utilisé partout em>). Probablement la solution la plus portable em> est quelque chose dans le sens de: >> echo 'This is : hello : an example' | sed 's/:/\t/'
This is hello : an example
Étant donné que vous souhaitez modifier des valeurs uniquement jusqu'à la première remplacer par côté de la lettre: - em> strong> Si vous voulez au moins un personnage doit être là Avant : code>, vous pouvez simplement correspondre à la valeur jusqu'à la première : code> Colon, puis utilisez la référence arrière au groupe capturé et remplacez-le avec 1 \ t code> pour obtenir la sortie souhaitée
Vous pouvez utiliser /^([^:]*):/
^ code> - début de chaîne li>
([^:] *) code> - correspond à quoi que ce soit, sauf : code> zéro ou plus de temps li>
: code> - correspondance : code> li>
ul> 1 \ t code> p> : code> que vous pouvez modifier quantifier à partir de * code> sur + p> p> p> p>
Un autre Quickie, je pense que vous aurez peut-être besoin d'un groupe de capture pour arrêter le colon dans la substitution. Comme cela se trouve maintenant, il semble insérer i> un onglet après le premier côlon plutôt que de le remplacer.
@paxdiablo mybad, je me suis confus avec la première sortie souhaitée, mise à jour, merci mate :)
@Ticimbiegeleisen mais regardant la lunette ne capture pas de caractère, donc il persistera toujours
Vous avez raison +1, ce que vous avez donné est probablement le moyen le plus maigre de faire cela.