Tantangan Anda adalah menemukan ekstensi file dari nama file yang disediakan:
hi.txt -> txt or .txt
carrot.meme -> meme or .meme
lol (undefined behavior)
what..is..this..file -> file or .file
.bashrc -> bashrc or .bashrc
[email protected][]h -> h0wC[]h or .h0wC[]h
agent.000 -> 000 or .000
Anda harus mendapatkan teks dari yang terakhir .
atau yang terakhir .
ke akhir string. Pertandingan menangkap kelompok pertama dari ekspresi reguler /\.([^.]+)$/
berfungsi, dan begitu juga dengan membagi input pada .
s dan mengembalikan yang terakhir.
Nama file akan selalu mengandung setidaknya satu .
, tetapi mungkin mengandung banyak .
. (lihat contoh)
Masukan akan selalu cocok ^[.a-zA-Z0-9^!\[\]{}@$%+=]+$
.
Jawaban:
Retina , 5 byte
Mengganti segala sesuatu dan titik tanpa apa-apa.
Cobalah online!
sumber
JavaScript (ES6), 19 byte
Mengembalikan nama file lengkap ketika tidak ada ekstensi file. Saya kira ini adalah perilaku tidak terdefinisi yang dapat diterima .
sumber
Mathematica,
1322 byteSunting: Tidak yakin bagaimana saya melewatkan
".bashrc"
test case. Terima kasih kepada Artyer karena membuatku jujur.Jika input cocok
\.[^.]+
, makaFileExtension
cukup kembalikan string kosong, jadi kami tambahkan hurufnyaa
. Dalam kasus lain apa pun, mengawalia
tidak mempengaruhi output dariFileExtension
.sumber
.ext
tidak menghasilkan apa-apa, yang gagal karena.bashrc
perlu keluaranbashrc
(Gagal dalam Matematika )Create Built-in XXXXXXXX
.Bash murni, 13
Cobalah online .
sumber
Japt , 3 byte
2 byte kode, +1 untuk
h
bendera.Penjelasan:
Cobalah online!
sumber
05AB1E , 4 byte
Cobalah online! atau Coba Semua Tes
sumber
fungsi c, 21
Cobalah online .
sumber
rindex
untuk menyimpan byte.rindex()
sebelumnya - terima kasih atas tipnya!PHP, 21 Bytes
Cobalah online!
adalah ungkapan yang lebih pendek untuk
pathinfo
PHP, 27 Bytes
meledak
Cobalah online!
PHP <7.0, 26 Bytes
perpecahan usang
sumber
pathinfo()
berbasis bisa<?=pathinfo($argn,4);
.Neo4j Cypher , 24 byte
Input dalam param (
i
), mungkin satu-satunya cara bagi cypher untuk mengambil input. Cukup mudah. Cypher belum pernah menggunakan PPCG sebelumnyasumber
GNU Make , 12 byte
Tidak menggunakan builtin, 27 byte:
sumber
Batch, 10 byte
Anehnya kompetitif sekali.
sumber
V ,
5, 3 byteKarena lebih dari jawaban ini tidak dapat dicetak dan tidak dapat dicetak, berikut adalah hexdump:
Cobalah online!
Ini menggunakan algoritma Jan Dvorak , itu hanya terjadi untuk penyandian yang lebih efisien.
Penjelasan:
Solusi lama:
sumber
®
artinya diikuti dengan titik? Lol itu aneh.sed , 8 byte
Cobalah online!
sumber
Jelly , 4 byte
Tautan monadik yang mengambil nama file dan mengembalikan ekstensi tanpa pimpinan
.
.Cobalah online!
Bagaimana?
Secara harfiah melakukan apa yang diminta ...
sumber
Pergi , 85 byte
Go itu ... merepotkan.
Cobalah online!
Contoh tanda kurung dari kode:
sumber
()(){([])([()])}
- apakah ini Brain-Flak yang valid?2
tanpa instruksi / perintah atau apa pun atau loop tak terbatas yang terus mengalokasikan lebih banyak memori, tergantung pada input.filepath.Ext
akan menghemat beberapa gigitanJavaScript (ES6),
333128 bytePerubahan spesifikasi dalam komentar menghilangkan kebutuhan
+1
.-3 byte berkat nderscore
sumber
slice
dan templat eksekusi string:s=>s.slice(s.lastIndexOf`.`)
Gangguan Umum, 57 byte
Cobalah secara online (menambahkan beberapa byte untuk memanggil fungsi anonim ini dan menampilkan string yang dikembalikan)
Penjelasan
Saya mendapatkan substring dari string terbalik, mulai dari 0, berakhir pada ini
sumber
Gema, 3 karakter
Contoh dijalankan:
sumber
MATL,
87 byteCobalah di MATL Online !
Penjelasan
sumber
Javascript (ES5), 38 byte
sumber
C #,
3341 byteEdit seperti yang disarankan:
sumber
using Sytem.Linq;
ke dalam hitungan byte Andaa=>a.Split('.').Last();
pengembalian implisit lebih pendekPath
...Awk,
1413 karakter(
109 karakter kode + 4 opsi opsi perintah karakter.)Terimakasih untuk:
Contoh dijalankan:
sumber
;
. dan hanya FYI,awk '{$0=$NF}1
berfungsi, tidak ada opsi baris perintah yang diperlukan. Oh ... aku pasti lelah. Saya melihat apa yang Anda lakukan di sana. Anda memang membutuhkan opsi baris perintah.;
sana.Lua ,
5330 byteGanti semuanya hingga yang terakhir
.
dengan string kosong''
.Tanda kurung ganda untuk memilih hanya nilai pengembalian pertama
gsub
.Setiap kiat bermain golf dipersilakan, saya berkarat di ...
Cobalah online!
sumber
Java 8,
5227 byteCoba di sini.
Ganti semuanya sebelum titik terakhir (dan titik itu sendiri) dengan apa-apa.
Ini lebih pendek daripada menggunakan split (
s->s.split("\\.")[s.split("\\.").length-1];
) atau substring (s->s.substring(s.lastIndexOf('.'));
).sumber
Taksi , 1397 byte
Cobalah online!
Taksi tidak memiliki fungsi terbalik sehingga ini menggelembung cukup cepat. Logikanya adalah:
sumber
Vim, 5 byte
Penjelasan: temukan yang terakhir
.
baris , hapus semuanya sebelum ituLain, lebih lama, tetapi menurut saya pendekatan yang masih menarik dengan 9 byte (perhatikan baris baru yang tertinggal)
Ini bekerja dengan cara yang sama, 5 byte (sekali lagi, tertinggal baris baru):
sumber
Brain-Flak , 84 byte
Termasuk +2 untuk
-rc
Cobalah online!
sumber
Japt ,
65 byteCobalah online!
Penjelasan
sumber
o
sebagai gantigJ
. (Mempelajari trik dari @obarakon beberapa waktu lalu)jq,
1514 karakter(
1110 karakter kode + 4 opsi opsi perintah karakter.)Contoh dijalankan:
Tes online
sumber
Oktaf, 24 byte
Membuat fungsi anonim bernama
ans
yang dapat menerima string sebagai inputDemo online
sumber