Регулярное выражение R: как извлечь элементы, содержащие два символа в определенном порядке? - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь использовать регулярное выражение для извлечения определенных элементов из вектора символов.Например, я хочу извлечь все элементы, содержащие символы 'abc' и '5' в указанном порядке.До 'abc' могут быть символы, между 'abc' и '5' и после '5'

Это то, что я придумал раньше.Я использую .указать что-либо (или ничего).

testvec = c('abc5', 'bc5', 'abc', 'aaabc3fs55')
grepl('.abc.5.', testvec, value = TRUE)

Правильный ответ должен быть

'abc5',   'aaabc3fs55'

что я делаю не так?

1 Ответ

0 голосов
/ 25 ноября 2018
grep('abc.*5', testvec, value = TRUE)
# [1] "abc5"       "aaabc3fs55"

Между тем ваш .abc.5. означает: любой отдельный символ, abc, любой отдельный символ, 5, любой отдельный символ.

С abc.*5 Я указал, что между abc может быть несколько символови 5, и нет необходимости (в вашем случае) говорить что-либо о том, что происходит после и до них;т.е. нет никаких ограничений, grep просто ищет abc.*5 где-то в элементах testvec.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...