У меня возникли проблемы с совпадением шаблона со строкой текста в R
.Класс символов POSIX не работает в базе R regex
Я пытаюсь получить TRUE
с grepl
, если текст что-то вроде "lettersornumbersorspaces y lettersornumbersorspaces".
Я использую следующие regex
:
([:alnum:]|[:blank:])+[:blank:][yY][:blank:]([:alnum:]|[:blank:])+
При использовании regex
следующим образом, чтобы получить адрес» «он работает в ожидании.
regex <- "([:alnum:]|[:blank:])+[:blank:][yY][:blank:]([:alnum:]|[:blank:])+"
address <- str_extract(fulltext, regex)
Я вижу, что адрес - это текст, который мне нужен. Теперь, если я хочу использовать grepl
, чтобы получить TRUE
следующим образом:
grepl("([:alnum:]|[:blank:])+[:blank:][yY][:blank:]([:alnum:]|[:blank:])+", address,ignore.case = TRUE)
FALSE
возвращается. Как это возможно? Я использую то же самое regex
, чтобы получить TRUE
. Я пробовал модификации параметров grepl
, но не связанные с ними.
Пример текста: "26 de Marzo y Pareyra de la Luz"
Спасибо !!
Классы символов POSIX должны быть внутри выражений скобок. '[: alnum:]' -> '[[: alnum:]]'. Кроме того, вы, похоже, хотите использовать шаблон PCRE с 'grepl', добавьте' perl = TRUE'. –
Это сработало! Благодаря!! =) –
Рад, что это сработало для вас. Пожалуйста, подумайте о принятии ответа (см. [Как принять ответы SO] (http: //meta.stackexchange.ком/вопросы/5234/как-делает-прием-ан-ответ-работа)). –