Extract file extension: Difference between revisions
Content added Content deleted
(→{{header|Racket}}: Several Improvements) |
|||
Line 240: | Line 240: | ||
<lang Racket>#lang racket |
<lang Racket>#lang racket |
||
;; Note that for a real implementation, Racket has a |
|||
⚫ | |||
;; `filename-extension` in its standard library, but don't use it here |
|||
⚫ | |||
;; since it requires a proper name (fails on ""), returns a byte-string, |
|||
(if v |
|||
;; and handles path values so might run into problems with unicode |
|||
(car v) |
|||
;; string inputs. |
|||
"")) |
|||
(define (string- |
(define (string-extension x) |
||
( |
(cadr (regexp-match #px"(\\.[[:alnum:]]+|)$" x))) |
||
(if v |
|||
(car v) |
|||
"")) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
"file.resume\u0301")) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
"myuniquefile.longextension" |
|||
⚫ | |||
(newline) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
(for ([x (in-list examples)]) |
|||
⚫ | |||
⚫ | |||
(for ([x (in-list examples)]) |
|||
⚫ | |||
</lang> |
|||
⚫ | |||
⚫ | |||
examples)</lang> |
|||
{{out}} |
{{out}} |
||
<pre>Official task |
<pre>Official task: |
||
"picture.jpg" ==> ".jpg" |
"picture.jpg" ==> ".jpg" |
||
"http://mywebsite.com/picture/image.png" ==> ".png" |
"http://mywebsite.com/picture/image.png" ==> ".png" |
||
"myuniquefile.longextension" ==> ".longextension" |
"myuniquefile.longextension" ==> ".longextension" |
||
"IAmAFileWithoutExtension" ==> "" |
"IAmAFileWithoutExtension" ==> "" |
||
"/path/to.my/file" ==> "" |
"/path/to.my/file" ==> "" |
||
"file.odd_one" ==> "" |
"file.odd_one" ==> "" |
||
"" ==> "" |
"" ==> "" |
||
"café.png" ==> ".png" |
"café.png" ==> ".png" |
||
"file.resumé" ==> "" |
"file.resumé" ==> "" |
||
"café.png" ==> ".png" |
"café.png" ==> ".png" |
||
"file.resumé" ==> "" |
"file.resumé" ==> "" |
||
With unicode support |
With unicode support: |
||
"picture.jpg" ==> ".jpg" |
"picture.jpg" ==> ".jpg" |
||
"http://mywebsite.com/picture/image.png" ==> ".png" |
"http://mywebsite.com/picture/image.png" ==> ".png" |
||
"myuniquefile.longextension" ==> ".longextension" |
"myuniquefile.longextension" ==> ".longextension" |
||
"IAmAFileWithoutExtension" ==> "" |
"IAmAFileWithoutExtension" ==> "" |
||
"/path/to.my/file" ==> "" |
"/path/to.my/file" ==> "" |
||
"file.odd_one" ==> "" |
"file.odd_one" ==> "" |
||
"" ==> "" |
"" ==> "" |
||
"café.png" ==> ".png" |
"café.png" ==> ".png" |
||
"file.resumé" ==> ".resumé" |
"file.resumé" ==> ".resumé" |
||
"café.png" ==> ".png" |
"café.png" ==> ".png" |
||
"file.resumé" ==> ".resumé" |
"file.resumé" ==> ".resumé" |
||
</pre> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |