2016-02-23 4 views
1

Хотя я консультировался по нескольким темам, я не могу заставить свой код работать, может быть, кто-то может помочь мне найти решение здесь.Регулярное выражение с комбинацией шаблонов в R

Я хотел бы искать файлы в директории, которая начинается с

start.contain <- "VP01_SPSG2015_Experimental" ## beginning of the file name 

и заканчивается

stop.contain <- ".vmrk" ## the file extension 

Какой шаблон я должен кормить

findfile <- list.files(path, pattern = ???) 

найти мой файл?

+1

Возможно, 'findfile <- list.files (path, pattern = paste0 ("^", start.contain,". * ", Stop.contain," $ "))'? Обратите внимание, что в регулярном выражении '.' должен быть экранирован или использоваться в символьном классе (' [.] ') Для обработки как литерала (используйте' '[.] Vmrk" ') –

ответ

1

Вы можете использовать

start.contain <- "VP01_SPSG2015_Experimental" ## beginning of the file name 
stop.contain <- "[.]vmrk" ## the file extension 
findfile <- list.files(path, pattern = paste0("^", start.contain, ".*", stop.contain, "$")) 

^ означает матч в начале строки и $ означает соответствие в конце строки. .* будет соответствовать любому нольу или нескольким символам.

Обратите внимание, что в регулярном выражении . должен быть экранирован или использован в символьном классе ([.]) для обработки как литерала. Таким образом, вы должны использовать "[.]vmrk" или "\\.vmrk".

+0

Протестировано на моей машине и появляется рабочий , –

+1

Это действительно так, спасибо! –

Смежные вопросы