Пропустить шаблон из другого подходящего регулярного выражения в R - PullRequest
0 голосов
/ 01 марта 2019

У меня есть символьный вектор R, элементами которого являются буквенно-цифровые строки.Вот пример:

mystring <- c("_IT_GSL_WEL_71_71_71_71", "_UTTEW_1_LCL_ABE_GT_3MTHST",  "_UTTEW_3_LCL_ABE_GT_2MTHST")

Требуется регулярное выражение, которое соответствует только буквам до , исключая первое число , с которым встречаются, и то же самоевремя игнорирует цифру сразу после любого шаблона _UTTEW_.Ожидаемый результат должен быть: c(_IT_GSL_WEL_, _UTTEW_1_LCL_ABE_GT_, _UTTEW_3_LCL_ABE_GT_).Это то, что у меня есть до сих пор

stringr::str_extract(mystring, pattern = "(^\\D*\\d)")

, который не пропускает шаблон _UTTEW_+digit, что можно проверить по полученному результату

c("_IT_GSL_WEL_7", "_UTTEW_1", "_UTTEW_3")

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 01 марта 2019

Мы можем попытаться сделать это в два этапа:

new<-gsub("\\d[A-Z]{4,}","",mystring,perl=TRUE)
gsub("\\d{2,}_.*","",new)
#[1] "_IT_GSL_WEL_"         "_UTTEW_1_LCL_ABE_GT_" "_UTTEW_3_LCL_ABE_GT_
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...