0
votes

Supprimer la sous-chaîne de la chaîne entre les caractères spéciaux dans R

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: xxx

quelque chose comme ceci: xxx

donc tout de / (inclus) à une première occurrence de | doit être supprimée. Jusqu'à présent, j'ai écrit celui-ci: xxx

mais il supprime tout sur la dernière occurrence de | xxx

Comment puis-je souligner que la sous-chaîne doit être supprimée de la première occurrence de |


0 commentaires

4 Réponses :


2
votes

Après votre tentative, vous pouvez faire votre regex paresseux xxx


0 commentaires

2
votes

Vous pouvez utiliser une classe de caractères niée avec un lookahead positif xxx pre>

pour ne pas traverser les nouvelles lignes, vous pouvez étendre la classe de caractères annulée: p> xxx pré>

Démo Regex P>

[1] "txt1|abc_def_123|1991-02-11"


0 commentaires

2
votes

Une autre approche consiste à utiliser la brouillon: xxx

ici, la double arrière-dressure \\ 1 \\ 2 "rappelle" les cordes dans les deux groupes de capture < code> (...) , tandis que les pièces non incluses dans les groupes de capture sont supprimées.


0 commentaires

3
votes

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"


0 commentaires