Ваша задача состоит в том, чтобы найти расширение файла с указанным именем файла:
hi.txt -> txt or .txt
carrot.meme -> meme or .meme
lol (undefined behavior)
what..is..this..file -> file or .file
.bashrc -> bashrc or .bashrc
T00M@n3KaPZ.h0wC[]h -> h0wC[]h or .h0wC[]h
agent.000 -> 000 or .000
Вы должны получить текст от последнего .
или после последнего .
до конца строки. Первое совпадение группы захвата регулярного выражения /\.([^.]+)$/
работает, также как и разделение ввода по .
s и возвращение последнего.
Имя файла всегда будет содержать хотя бы одно .
, но оно может содержать несколько .
. (см. примеры)
Ввод всегда будет совпадать ^[.a-zA-Z0-9^!\[\]{}@$%+=]+$
.
Ответы:
Сетчатка , 5 байт
Заменяет все и точку ни с чем.
Попробуйте онлайн!
источник
JavaScript (ES6), 19 байт
Возвращает полное имя файла, когда нет расширения файла. Я полагаю, это приемлемое неопределенное поведение .
источник
Mathematica,
1322 байтаИзменить: не уверен, как я пропустил
".bashrc"
тестовый пример. Спасибо Artyer за честность.Если вход совпадает
\.[^.]+
, тоFileExtension
просто возвращает пустую строку, поэтому мы добавляем буквуa
. В любом другом случае добавлениеa
не влияет на выводFileExtension
.источник
.ext
это ни к чему не приведет, что не сработает из-за.bashrc
необходимости выводаbashrc
(в Mathics не получится )Create Built-in XXXXXXXX
.Чистая Баш, 13
Попробуйте онлайн .
источник
Japt , 3 байта
2 байта кода, +1 за
h
флаг.Объяснение:
Попробуйте онлайн!
источник
05AB1E , 4 байта
Попробуйте онлайн! или попробуйте все тесты
источник
с функция, 21
Попробуйте онлайн .
источник
rindex
для сохранения байта.rindex()
раньше - спасибо за совет!PHP, 21 байт
Попробуйте онлайн!
это более короткое выражение для
PathInfo
PHP, 27 байт
взрываться
Попробуйте онлайн!
PHP <7,0, 26 байт
не рекомендуется раскол
источник
pathinfo()
основании может быть<?=pathinfo($argn,4);
.Neo4j Cypher , 24 байта
Ввод в param (
i
), вероятно, единственный способ для ввода шифра. Довольно просто. Cypher никогда не использовался на PPCG раньшеисточник
GNU Make , 12 байт
Не использует встроенный, 27 байт:
источник
Пакетный, 10 байтов
Странно конкурентоспособно на этот раз.
источник
V ,
5, 3 байтаПоскольку большая часть этого ответа не печатается, чем печатается, вот hexdump:
Попробуйте онлайн!
Это использует алгоритм Яна Дворака , просто это более эффективная кодировка.
Объяснение:
Старое решение:
источник
®
означает, за которым следует точка? Лол это странноsed , 8 байт
Попробуйте онлайн!
источник
Желе , 4 байта
Монадическая ссылка, берущая имя файла и возвращающая расширение без ведущего
.
.Попробуйте онлайн!
Как?
Буквально делает то, что спросили ...
источник
Go , 85 байт
Идти это ... хлопотно.
Попробуйте онлайн!
Образец скобок из кода:
источник
()(){([])([()])}
- это действительный Brain-Flak?2
без инструкций / команд, либо что-то еще, либо бесконечный цикл, который непрерывно выделяет больше памяти, в зависимости от ввода.filepath.Ext
сэкономит вам несколько укусовJavaScript (ES6),
333128 байтИзменение спецификации в комментариях устраняет необходимость
+1
.-3 байта благодаря nderscore
источник
slice
и выполнение шаблона строки:s=>s.slice(s.lastIndexOf`.`)
Common Lisp, 57 байт
Попробуйте онлайн (добавлено несколько байтов для вызова этой анонимной функции и отображения возвращаемой строки)
объяснение
Я получаю подстроку обратной строки, начиная с 0 и заканчивая этим
источник
Гема, 3 персонажа
Образец прогона:
источник
MATL,
87 байтПопробуйте это в MATL Online !
объяснение
источник
Javascript (ES5), 38 байт
источник
C #,
3341 байтИзменить как предложено:
источник
using Sytem.Linq;
в свой счетчик байтовa=>a.Split('.').Last();
неявное возвращение корочеPath
...Awk,
1413 символов(
109 символов кода + 4 символа командной строки.)Благодаря:
Образец прогона:
источник
;
. и просто к сведению,awk '{$0=$NF}1
работает, опция командной строки не требуется. Ох ... Я должен быть уставшим. Я вижу что ты тут делал. Вам нужна опция командной строки.;
туда.Луа ,
5330 байтЗаменяет все до последнего
.
пустой строкой''
.Двойные скобки, чтобы выбрать только первое возвращаемое значение
gsub
.Любые советы по гольфу приветствуются, я ржавый в Луа ...
Попробуйте онлайн!
источник
Java 8,
5227 байтПопробуй это здесь.
Замените все до последней точки (и самой точки) ничем.
Это короче, чем использование split (
s->s.split("\\.")[s.split("\\.").length-1];
) или substring (s->s.substring(s.lastIndexOf('.'));
).источник
Такси , 1397 байт
Попробуйте онлайн!
Такси не имеет функции обратного хода, поэтому это быстро раздувается. Логика такова:
источник
Vim, 5 байт
Пояснение: найти последнюю
.
в строке, удалить все перед нейДругой, более длинный, но, на мой взгляд, все еще интересный подход с 9 байтами (обратите внимание на трейлинг новую строку)
Этот работает аналогично, 5 байтов (опять же, трейлинг новой строки):
источник
Мозг-Flak , 84 байта
Включает +2 для
-rc
Попробуйте онлайн!
источник
Japt ,
65 байтПопробуйте онлайн!
объяснение
источник
o
вместоgJ
. (Узнал этот трюк от @obarakon некоторое время назад)JQ,
1514 символов(
1110 символов кода + 4 символа параметров командной строки.)Образец прогона:
Он-лайн тест
источник
Октава, 24 байта
Создает анонимную функцию с именем,
ans
которая может принимать строку в качестве вводаОнлайн демо
источник