Extract file extension: Difference between revisions

(added ocaml)
Line 1,270:
/etc/pam.d/login -> ""</pre>
 
 
=={{header|Objeck}}==
<lang objeck>use Query.RegEx;
 
class FindExtension {
function : Main(args : String[]) ~ Nil {
file_names := [
"http://example.com/download.tar.gz", "CharacterModel.3DS",
".desktop", "document", "document.txt_backup", "/etc/pam.d/login"];
 
each(i : file_names) {
file_name := file_names[i];
System.IO.Console->Print(file_name)->Print(" has extension: ")->PrintLine(GetExtension(file_name));
};
}
 
function : GetExtension(file_name : String) ~ String {
index := file_name->FindLast('.');
if(index < 0) {
return "";
};
 
ext := file_name->SubString(index, file_name->Size() - index);
if(ext->Size() < 1) {
return "";
};
if(<>RegEx->New("\\.([a-z]|[A-Z]|[0-9])+")->MatchExact(ext)) {
return "";
};
 
return ext;
}
}</lang>
 
{{output}}
<pre>
http://example.com/download.tar.gz has extension: .gz
CharacterModel.3DS has extension: .3DS
.desktop has extension: .desktop
document has extension:
document.txt_backup has extension:
/etc/pam.d/login has extension:
</pre>
 
=={{header|OCaml}}==
760

edits