Twoim wyzwaniem jest znalezienie rozszerzenia podanej nazwy pliku:
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
Musisz pobrać tekst od ostatniego .
lub po ostatnim .
do końca ciągu. /\.([^.]+)$/
Działa pierwsze dopasowanie grupy przechwytywania wyrażenia regularnego , podobnie jak dzielenie danych wejściowych na .
s i zwracanie ostatniego.
Nazwa pliku zawsze będzie zawierać co najmniej jeden .
, ale może zawierać wiele .
. (patrz przykłady)
Dane wejściowe zawsze będą pasować ^[.a-zA-Z0-9^!\[\]{}@$%+=]+$
.
Odpowiedzi:
Siatkówka , 5 bajtów
Zastępuje wszystko i kropkę niczym.
Wypróbuj online!
źródło
JavaScript (ES6), 19 bajtów
Zwraca pełną nazwę pliku, gdy nie ma rozszerzenia pliku. Przypuszczam, że jest to dopuszczalne niezdefiniowane zachowanie .
źródło
Mathematica,
1322 bajtówEdycja: Nie jestem pewien, jak przegapiłem
".bashrc"
przypadek testowy. Dziękuję Artyerowi za zachowanie mnie w uczciwości.Jeśli dane wejściowe pasują
\.[^.]+
, toFileExtension
po prostu zwraca pusty ciąg, więc poprzedzamy literęa
. W każdym innym przypadku poprzedzaniea
nie wpływa na wynikFileExtension
.źródło
.ext
to nic nie da, co nie udaje się z.bashrc
koniecznością uzyskania danych wyjściowychbashrc
(nie działa w matematyce )Create Built-in XXXXXXXX
.Pure Bash, 13
Wypróbuj online .
źródło
Japt , 3 bajty
2 bajty kodu, +1 dla
h
flagi.Wyjaśnienie:
Wypróbuj online!
źródło
05AB1E , 4 bajty
Wypróbuj online! lub Wypróbuj wszystkie testy
źródło
funkcja c, 21
Wypróbuj online .
źródło
rindex
do zapisania bajtu.rindex()
- dziękuję za podpowiedź!PHP, 21 bajtów
Wypróbuj online!
jest krótszym wyrażeniem dla
pathinfo
PHP, 27 bajtów
eksplodować
Wypróbuj online!
PHP <7.0, 26 bajtów
przestarzały podział
źródło
pathinfo()
Jeden oparty może być<?=pathinfo($argn,4);
.Neo4j Cypher , 24 bajty
Dane wejściowe są w param (
i
), prawdopodobnie jedynym sposobie, w jaki cypher przyjmuje dane wejściowe. Całkiem proste. Cypher nigdy wcześniej nie był używany w PPCGźródło
Marka GNU , 12 bajtów
Nie używa wbudowanego, 27 bajtów:
źródło
Partia, 10 bajtów
Raz dziwnie konkurencyjny.
źródło
V ,
5, 3 bajtyPonieważ większej części tej odpowiedzi nie można wydrukować niż wydrukować, oto zrzut heksowy:
Wypróbuj online!
Korzysta z algorytmu Jana Dvoraka , okazuje się, że jest to bardziej wydajne jego kodowanie.
Wyjaśnienie:
Stare rozwiązanie:
źródło
®
oznacza kropkę? Lol, to dziwne.sed , 8 bajtów
Wypróbuj online!
źródło
Galaretka , 4 bajty
Monadyczny link pobierający nazwę pliku i zwracający rozszerzenie bez wiodącego
.
.Wypróbuj online!
W jaki sposób?
Dosłownie robi to, o co poproszono ...
źródło
Idź , 85 bajtów
Go jest ... kłopotliwy.
Wypróbuj online!
Próbka nawiasów z kodu:
źródło
()(){([])([()])}
- czy jest to poprawny Brain-Flak?2
brak instrukcji / poleceń, albo nieskończona pętla, która stale przydziela więcej pamięci, w zależności od danych wejściowych.filepath.Ext
zaoszczędzi ci kilka kęsówJavaScript (ES6),
333128 bajtówZmiana specyfikacji w komentarzach eliminuje potrzebę
+1
.-3 bajty dzięki nderscore
źródło
slice
wykonaniem łańcucha i szablonu:s=>s.slice(s.lastIndexOf`.`)
Common Lisp, 57 bajtów
Wypróbuj online (dodano kilka bajtów, aby wywołać tę anonimową funkcję i wyświetlić zwrócony ciąg)
Wyjaśnienie
Otrzymuję podciąg odwróconego łańcucha, zaczynając od 0, kończąc na tym
źródło
Gema, 3 znaki
Przykładowy przebieg:
źródło
MATL,
87 bajtówWypróbuj w MATL Online !
Wyjaśnienie
źródło
JavaScript (ES5), 38 bajtów
źródło
C #,
3341 bajtówEdytuj zgodnie z sugestią:
źródło
using Sytem.Linq;
w swojej liczbie bajtówa=>a.Split('.').Last();
niejawny zwrot jest krótszyPath
...Awk,
1413 znaków( Kod
109 znaków + opcja wiersza poleceń 4 znaki.)Dzięki:
Przykładowy przebieg:
źródło
;
. i po prostu FYI,awk '{$0=$NF}1
działa, nie wymaga opcji wiersza poleceń. Och ... muszę być zmęczony. Widzę, co tu zrobiłeś. Potrzebujesz opcji wiersza polecenia.;
tam umieściłem .Lua ,
5330 bajtówZastępuje wszystko do ostatniego
.
pustym ciągiem''
.Podwójny nawias, aby wybrać tylko pierwszą wartość zwracaną
gsub
.Wszelkie wskazówki dotyczące golfa są mile widziane, jestem zardzewiały w lua ...
Wypróbuj online!
źródło
Java 8,
5227 bajtówWypróbuj tutaj.
Zastąp wszystko przed ostatnią kropką (i samą kropką) niczym.
Jest to krótsze niż użycie split (
s->s.split("\\.")[s.split("\\.").length-1];
) lub substring (s->s.substring(s.lastIndexOf('.'));
).źródło
Taxi , 1397 bajtów
Wypróbuj online!
Taksówka nie ma funkcji cofania, więc balon szybko się zwiększył. Logika jest następująca:
źródło
Vim, 5 bajtów
Objaśnienie: znajdź ostatni
.
wiersz, usuń wszystko przed nimKolejne, dłuższe, ale moim zdaniem wciąż interesujące podejście z 9 bajtami (zauważ końcową nową linię)
Ten działa podobnie, 5 bajtów (ponownie, końcowy nowy wiersz):
źródło
Brain-Flak , 84 bajtów
Obejmuje +2 za
-rc
Wypróbuj online!
źródło
Japt ,
65 bajtówWypróbuj online!
Wyjaśnienie
źródło
o
zamiastgJ
. (Nauczyłem się tej sztuczki od @obarakon jakiś czas temu)jq,
1514 znaków(
1110 znaków kodowych + 4 znaki opcji wiersza poleceń).Przykładowy przebieg:
Test online
źródło
Oktawa, 24 bajty
Tworzy anonimową funkcję o nazwie
ans
która może zaakceptować ciąg jako dane wejścioweDemo online
źródło