Сопоставление с образцом в R с использованием функции grepl () - PullRequest
0 голосов
/ 28 марта 2020

У меня есть совпадение с шаблоном ниже -

grepl("Close_[a-zA-Z]{0,}_{0,1}ASE_[a-zA-Z]{0,}_{0,1}", "Close_ASE_RS____")
#TRUE

R возвращает это как положительное совпадение. Разве это не должно быть FALSE, поскольку у меня "____", который имеет более чем 1 повторение "_", но в моем паттерне я ставлю только max 1 match через "_{0,1}"

Any будет очень полезно указать, почему это происходит.

Спасибо,

Ответы [ 2 ]

1 голос
/ 28 марта 2020

Мы можем использовать границу слова

grepl("Close_[a-zA-Z]{0,}_{0,1}ASE_[a-zA-Z]{0,}_{0,1}\\b", "Close_ASE_RS____")
#[1] FALSE
1 голос
/ 28 марта 2020

Попробуйте указать, что строка заканчивается после вашего начального шаблона:

grepl("Close_[a-zA-Z]{0,}_{0,1}ASE_[a-zA-Z]{0,}_{0,1}$", "Close_ASE_RS____")

# [1] FALSE

В противном случае вы можете поставить что-нибудь после начального подчеркивания, следующего за RS, и оно будет соответствовать ему.

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