Je cherchais une réponse mais j'ai échoué. Ma question est un peu particulière et j'apprends toujours plus de regex. J'aimerais réaliser, à partir de ceci: quelque chose comme ceci: p> donc tout de mais il supprime tout sur la dernière occurrence de Comment puis-je souligner que la sous-chaîne doit être supprimée de la première occurrence de / code > (inclus) à une première occurrence de | code> doit être supprimée.
Jusqu'à présent, j'ai écrit celui-ci: p> | p> | p> p> p>
4 Réponses :
Après votre tentative, vous pouvez faire votre regex paresseux
Vous pouvez utiliser une classe de caractères niée avec un lookahead positif pour ne pas traverser les nouvelles lignes, vous pouvez étendre la classe de caractères annulée: p> Démo Regex P> [1] "txt1|abc_def_123|1991-02-11"
Une autre approche consiste à utiliser la brouillon: ici, la double arrière-dressure \\ 1 \\ 2 code> "rappelle" les cordes dans les deux groupes de capture < code> (...) code>, tandis que les pièces non incluses dans les groupes de capture sont supprimées. p> p>
Vous pouvez utiliser / [^ |] * code> qui prend le premier / code> et tout après cela tant que ce n'est pas un | code> . sub("/[^|]*", "", str1)
#[1] "txt1|abc_def_123|1991-02-11"