lua get file extension first occurrence
So i have a url like so
https://example.com/path/to/file/file.mp4/file.jpg
I want to match only the first provided file extension provided not any others people insert into the url.
Example :
function GetFileExtension(url)
return url:match("^.+(%..+)$")
end
local url = "https://example.com/path/to/file/file.mp4/file.jpg"
print(GetFileExtension(url))
Output :
.jpg
The output should be a .mp4 since that is what the file is anything after the first occurrence is ignored on the url.
What is the best way to fix this. Thanks to anyone who can help me and answer my question.
lua
add a comment |
So i have a url like so
https://example.com/path/to/file/file.mp4/file.jpg
I want to match only the first provided file extension provided not any others people insert into the url.
Example :
function GetFileExtension(url)
return url:match("^.+(%..+)$")
end
local url = "https://example.com/path/to/file/file.mp4/file.jpg"
print(GetFileExtension(url))
Output :
.jpg
The output should be a .mp4 since that is what the file is anything after the first occurrence is ignored on the url.
What is the best way to fix this. Thanks to anyone who can help me and answer my question.
lua
1
url:match"//[^/]+/.-(%.[^/]+)"
– Egor Skriptunoff
Nov 14 '18 at 19:10
1
or(%.[^/]*)
to allow empty extensions...
– Paul Kulchenko
Nov 14 '18 at 19:34
@PaulKulchenko - Are filenames likefile.
valid?
– Egor Skriptunoff
Nov 15 '18 at 7:28
Are URLs likehttps://example.com/path/to/file/../file.mp4/file.jpg
possible?
– Egor Skriptunoff
Nov 15 '18 at 7:31
add a comment |
So i have a url like so
https://example.com/path/to/file/file.mp4/file.jpg
I want to match only the first provided file extension provided not any others people insert into the url.
Example :
function GetFileExtension(url)
return url:match("^.+(%..+)$")
end
local url = "https://example.com/path/to/file/file.mp4/file.jpg"
print(GetFileExtension(url))
Output :
.jpg
The output should be a .mp4 since that is what the file is anything after the first occurrence is ignored on the url.
What is the best way to fix this. Thanks to anyone who can help me and answer my question.
lua
So i have a url like so
https://example.com/path/to/file/file.mp4/file.jpg
I want to match only the first provided file extension provided not any others people insert into the url.
Example :
function GetFileExtension(url)
return url:match("^.+(%..+)$")
end
local url = "https://example.com/path/to/file/file.mp4/file.jpg"
print(GetFileExtension(url))
Output :
.jpg
The output should be a .mp4 since that is what the file is anything after the first occurrence is ignored on the url.
What is the best way to fix this. Thanks to anyone who can help me and answer my question.
lua
lua
asked Nov 14 '18 at 18:48
C0nw0nkC0nw0nk
3721214
3721214
1
url:match"//[^/]+/.-(%.[^/]+)"
– Egor Skriptunoff
Nov 14 '18 at 19:10
1
or(%.[^/]*)
to allow empty extensions...
– Paul Kulchenko
Nov 14 '18 at 19:34
@PaulKulchenko - Are filenames likefile.
valid?
– Egor Skriptunoff
Nov 15 '18 at 7:28
Are URLs likehttps://example.com/path/to/file/../file.mp4/file.jpg
possible?
– Egor Skriptunoff
Nov 15 '18 at 7:31
add a comment |
1
url:match"//[^/]+/.-(%.[^/]+)"
– Egor Skriptunoff
Nov 14 '18 at 19:10
1
or(%.[^/]*)
to allow empty extensions...
– Paul Kulchenko
Nov 14 '18 at 19:34
@PaulKulchenko - Are filenames likefile.
valid?
– Egor Skriptunoff
Nov 15 '18 at 7:28
Are URLs likehttps://example.com/path/to/file/../file.mp4/file.jpg
possible?
– Egor Skriptunoff
Nov 15 '18 at 7:31
1
1
url:match"//[^/]+/.-(%.[^/]+)"
– Egor Skriptunoff
Nov 14 '18 at 19:10
url:match"//[^/]+/.-(%.[^/]+)"
– Egor Skriptunoff
Nov 14 '18 at 19:10
1
1
or
(%.[^/]*)
to allow empty extensions...– Paul Kulchenko
Nov 14 '18 at 19:34
or
(%.[^/]*)
to allow empty extensions...– Paul Kulchenko
Nov 14 '18 at 19:34
@PaulKulchenko - Are filenames like
file.
valid?– Egor Skriptunoff
Nov 15 '18 at 7:28
@PaulKulchenko - Are filenames like
file.
valid?– Egor Skriptunoff
Nov 15 '18 at 7:28
Are URLs like
https://example.com/path/to/file/../file.mp4/file.jpg
possible?– Egor Skriptunoff
Nov 15 '18 at 7:31
Are URLs like
https://example.com/path/to/file/../file.mp4/file.jpg
possible?– Egor Skriptunoff
Nov 15 '18 at 7:31
add a comment |
1 Answer
1
active
oldest
votes
Try url:match("//.-/.+(%..*)$"))
.
The pattern finds the first /
after //
, thus skipping the host part. Then it finds the last .
and captures it together with the extension, if any.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53306911%2flua-get-file-extension-first-occurrence%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try url:match("//.-/.+(%..*)$"))
.
The pattern finds the first /
after //
, thus skipping the host part. Then it finds the last .
and captures it together with the extension, if any.
add a comment |
Try url:match("//.-/.+(%..*)$"))
.
The pattern finds the first /
after //
, thus skipping the host part. Then it finds the last .
and captures it together with the extension, if any.
add a comment |
Try url:match("//.-/.+(%..*)$"))
.
The pattern finds the first /
after //
, thus skipping the host part. Then it finds the last .
and captures it together with the extension, if any.
Try url:match("//.-/.+(%..*)$"))
.
The pattern finds the first /
after //
, thus skipping the host part. Then it finds the last .
and captures it together with the extension, if any.
answered Nov 15 '18 at 8:59
lhflhf
56.2k668104
56.2k668104
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53306911%2flua-get-file-extension-first-occurrence%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
url:match"//[^/]+/.-(%.[^/]+)"
– Egor Skriptunoff
Nov 14 '18 at 19:10
1
or
(%.[^/]*)
to allow empty extensions...– Paul Kulchenko
Nov 14 '18 at 19:34
@PaulKulchenko - Are filenames like
file.
valid?– Egor Skriptunoff
Nov 15 '18 at 7:28
Are URLs like
https://example.com/path/to/file/../file.mp4/file.jpg
possible?– Egor Skriptunoff
Nov 15 '18 at 7:31