Как выполнить поиск в случаях, когда шаблон не существует без perl -похожего взгляда? - PullRequest
1 голос
/ 14 апреля 2020

Я пытаюсь создать регулярное выражение для случая, когда шаблон не происходит (в частности, я хочу получить список папок и подпапок с диска, поэтому я ищу что-нибудь, что не конец в \\.[[:alnum:]]{1,4}$). Поскольку этот шаблон входит в list.files, я не могу использовать PERL -похожий взгляд (верно?). Есть ли для меня способ достичь этого, кроме как сначала поместить все в вектор, а затем запустить grep для него с lookahead?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

ОК, это было глупо. Ответ все время смотрел мне в лицо - list.dirs перечисляет только каталоги, а list.files перечисляет все файлы. Я не уверен, почему первые попытки не дали мне результата, который я искал ...

0 голосов
/ 14 апреля 2020

Я не слишком знаком с регулярным выражением R, но мне кажется, что это работает:

'.*[^[:alnum:]].{0,3}$'

Что означает, что вы хотите, чтобы хотя бы один из 3 последних символов был не будь альфа-ном

files <- c("my_file", "script.php", "foo!faa", "test123.321tset", "colors.red")

files[grep(".*[^[:alnum:]].{0,3}$", files)]
# => "script.php" "foo!faa"    "colors.red"
...