Извлечь расширение файла из пути URL в R

Я пытаюсь извлечь расширение файла (если существует) из URL-адресов, таких как

> http://www.example.com/index.php?option=com&etc
> http://www.example.com/subpage1/subpage2/file.pdf

С basename(URL) функция, я получил файл. Но когда я подал заявку sub()Я понял

> sub(".*([.*])", "\\1", basename(URL))
> php?option=com&etc
> .pdf

Как получить только расширение (если есть)?

я пытался file_ext(basename(URL)), Это работает для второго примера (когда нет параметров), но ничего не дает для первого.

file_ext(basename(URL))
[1] ""

Возможно ли иметь регулярное выражение, которое извлекает строки между "." а также "?".

1 ответ

Решение

Избавьтесь от всех аргументов, перечисленных после ?, а затем запустить file_ext:

tools::file_ext(sub("\\?.+", "", URL))
#[1] "php" "pdf"

куда URL было:

URL <- c(
"http://www.example.com/index.php?option=com&etc",
"http://www.example.com/subpage1/subpage2/file.pdf"
)
Другие вопросы по тегам