Я не слишком знаком с регулярным выражением 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"