R: Regex pour correspondre à motif entre crochets à l'exception

voix
0

J'ai cette chaîne:

« [DELW] [0x00] [ARR] [0x00] [0x12] [0xE0] [0xF0] [0xEF] [DOWN] [UP] asdkjaosdkj [ENTRER] »

Je veux supprimer toutes les keytab (entre crochets) en commençant par des chiffres comme [0x00], [0xF0].

résultat final serait la suivante: « [DELW] [ARR] [DOWN] [UP] asdkjaosdkj [ENTRER] »

Je pensais à l'aide str_replace mais un moment difficile à venir avec regex qui fonctionne. Je voudrais vraiment apprécier toute l'aide. Je vous remercie!

Créé 27/11/2018 à 15:15
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
2

Si vos trucs pour enlever est toujours 0xet deux chiffres hexadécimaux alors:

> gsub("\\[0x..\\]","",s)
[1] "[DELW][BKSP][DOWN][UP]asdkjaosdkj[ENTER]"

Notez le \besoin d'arrêter d' []être spécial, et \\pour obtenir une barre oblique inverse réelle dans une chaîne de R.

Si vous voulez tirer dans le stringrpaquet que vous pouvez le faire avec le même motif:

> stringr::str_replace_all(s, "\\[0x..\\]","")
[1] "[DELW][BKSP][DOWN][UP]asdkjaosdkj[ENTER]"

Mais base::gsubgarde la lumière des choses.

Créé 27/11/2018 à 15:24
source utilisateur

voix
0

Je pense que vous pouvez essayer

\[[^0x]+]

Explication

\[- Littéralement correspondre à [ caractère.

[^0x]+ - Faites correspondre quoi que ce soit une ou plusieurs fois, sauf 0x.

]- Littéralement correspondre ] caractère

entrez la description d'image ici

Créé 27/11/2018 à 16:07
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more