scinde une chaîne avec la regex
Je suis à la recherche de découper une chaîne d'une forme générique, où les crochets désigner les "sections" de la chaîne. Ex:
x <- "[a] + [bc] + 1"
Et le retour d'un personnage vecteur qui ressemble à:
"[a]" " + " "[bc]" " + 1"
EDIT: Fini l'utilisation de ce:
x <- "[a] + [bc] + 1"
x <- gsub("\\[",",[",x)
x <- gsub("\\]","],",x)
strsplit(x,",")
Vous devez vous connecter pour publier un commentaire.
J'ai vu TylerRinker du code et pensez que cela peut être plus clair que cela, mais cela peut servir comme un moyen d'en apprendre un ensemble de fonctions différent. (J'ai aimé son mieux avant, j'ai remarqué qu'il se diviser sur les espaces.) J'ai essayé d'adapter ce de travailler avec
strsplit
mais cette fonction supprime toujours les séparateurs.Cela pourrait peut-être être adapté pour faire un
newstrsplit
qui se divise à l'séparateurs mais les laisse dans? Probablement pas divisé en première ou en dernière position et la distinction entre l'ouverture et la fermeture des séparateurs.strplit
:C'est un paresseux approche:
Vous pouvez calculer les points de scission manuellement et utiliser
substring
:gregexpr
serait utile. J'ai été surpris que vous n'avez pas besoin d'utiliser "\]" dans le modèle.]
n'a pas besoin d'être échappé, car il n'est pas interprété comme une fin de classe de personnage en raison du fait que[
est. Hmm, pas sûr que je suis très clair 🙂Et voici une version qui se divise sur les crochets ET les maintient dans la suite, à l'aide d'anticipation positif et lookbehind: