R: Regex чтобы соответствовать шаблону в квадратных скобках с исключением

голоса
0

У меня есть эта строка:

«[DELW] [0x00] [BkSp] [0x00] [0x12] [0xE0] [0xF0] [0xEF] [DOWN] [UP] asdkjaosdkj [ENTER]»

Я хочу, чтобы удалить все Keytab (в квадратных скобках), начиная с номером типа [0x00], [0xF0].

Окончательный результат будет: «[DELW] [BKSP] [DOWN] [UP] asdkjaosdkj [ENTER]»

Я думал об использовании str_replace, но с трудом приходя с регулярным выражением, которое работает. Я действительно ценю всю помощь. Спасибо!

Задан 27/11/2018 в 15:15
источник пользователем
На других языках...                            


2 ответов

голоса
2

Если ваш материал , чтобы удалить всегда 0xи две шестнадцатеричные цифры , то:

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

Обратите внимание , что \необходимо , чтобы остановить []быть особенным, и \\получить реальную обратную косую черту в строку R.

Если вы хотите , чтобы тянуть в stringrпакете , который вы можете сделать это с той же схемой:

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

Но base::gsubдержит вещи свет.

Ответил 27/11/2018 в 15:24
источник пользователем

голоса
0

Я думаю, вы можете попробовать это

\[[^0x]+]

объяснение

\[- Буквально совпадают [ характер.

[^0x]+ - Матч ничего один или больше времени, кроме 0x.

]- Буквально совпадают ] характер

введите описание изображения здесь

Ответил 27/11/2018 в 16:07
источник пользователем

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