Ребму, 91 персонаж
Через Catch-22 я маю повідомлення, щоб отримати URL-адресу цієї відповіді. : - / Гаразд, зрозумів.
paTSrd http://codegolf.stackexchange.com/a/28154[th<a name="28154">th<code>cpCto</code>]prC
Ребму - це діалект Ребола, і ви можете прочитати все про нього . Еквівалент Rebol тут був би:
parse to-string read http://codegolf.stackexchange.com/a/28154 [
thru <a name="28154">
thru <code>
copy c to </code>
]
print c
PARSE Rebol - це свого роду високограмотна відповідь на RegEx. Він починає синтаксичний аналіз вхідного сигналу (який може бути будь-якої серії, включаючи структурні блоки ... двійкові дані ... або типи рядків) . Правила - це мова про те, як рухається позиція розбору.
Теги та URL-адреси насправді є лише рядками під капотом мови. Але вони "ароматизовані", і як динамічно набирається Rebol, ви можете перевірити цей тип. Наприклад, "READ" знає, що якщо ви дасте йому рядок з ароматизованою URL-адресою, тоді він повинен відправити обробник схеми для читання. (У цьому випадку той, який зареєстрований на HTTP). Ви отримуєте назад байти UTF-8 за замовчуванням, тому ми використовуємо to-string для його декодування та отримання серії кодових точок у звичайному рядку Unicode.
У випадку з діалектом розбору, зустрічаючи тип тегу, просто узгоджується так, ніби це був рядок, схожий на тег. THRU - це інструкція, що означає "пропустити, поки відповідне правило, а потім розташувати позицію матчу в кінці того, що ти щойно відповідав". (TO - аналог, який відповідає, але залишає позицію розбору перед елементом).
Тож ми прошиваємо повз повз <a name="28154">
. Тоді ми прошиваємо повз наступне виникнення <code>
, і наше положення розбору тепер знаходиться відразу після >
. Команда PARSE COPY потім дозволяє нам копіювати дані до іншого правила, в цьому випадку це правило є [TO </code>]
... тому ми потрапляємо в змінну C все до прямо до цього <
.
Класно , так? :-)
Технічно я міг би більше відголити його, наприклад, шукаючи, TO "</"
і це економить три символи - немає потреби узгоджувати весь </code>
кінцевий тег, коли </
це робиться. Подібні аргументи я міг би зробити для стартового тегу. Але Ребму - це грамотний гольф ... навіть якщо вам здається, що це спочатку дивно!
ОНОВЛЕННЯ : /body
трюк вийшов із сумки, але я аналогічно збираюся залишити його таким, який є ... тому що я вважаю, що це більш навчально.