Rebmu, 91 znaków
Z powodu Catch-22 muszę pisać, aby uzyskać adres URL tej odpowiedzi. : - / Dobra, rozumiem.
paTSrd http://codegolf.stackexchange.com/a/28154[th<a name="28154">th<code>cpCto</code>]prC
Rebmu jest dialektem Rebola i możesz o nim przeczytać . Odpowiednikiem Rebola tutaj byłoby:
parse to-string read http://codegolf.stackexchange.com/a/28154 [
thru <a name="28154">
thru <code>
copy c to </code>
]
print c
Rebol's PARSE jest rodzajem bardzo kompetentnej odpowiedzi na RegEx. Zaczyna pozycję parsera wejścia (która może być dowolną serią, w tym blokami strukturalnymi ... danymi binarnymi ... lub typami ciągów) . Reguły są językiem, w jaki sposób zmienia się pozycja analizy.
Tagi i adresy URL są w rzeczywistości po prostu napisami pod maską w języku. Ale są „doprawione”, a ponieważ Rebol jest dynamicznie wpisywany, możesz sprawdzić ten typ. READ na przykład wie, że jeśli podasz mu ciąg o smaku URL, to powinien wysłać do programu obsługi schematu, aby dokonać odczytu. (W tym przypadku zarejestrowany dla HTTP). Domyślnie odzyskujesz bajty UTF-8, więc używamy to-string, aby to zdekodować i uzyskać serię punktów kodowych w normalnym ciągu Unicode.
W przypadku dialektu parsowania napotkanie typu znacznika jest po prostu dopasowane, tak jakby był łańcuchem wyglądającym jak znacznik. THRU jest instrukcją oznaczającą „przeskocz do momentu dopasowania wynikającej z niej reguły, a następnie umieść pozycję dopasowania na końcu tego, co właśnie dopasowałeś”. (TO jest analogiem, który pasuje, ale pozostawia pozycję analizy przed elementem).
Pędzimy więc obok <a name="28154">
. Następnie przeskakujemy obok następnego wystąpienia <code>
, a nasza pozycja analizy jest teraz zlokalizowana zaraz po >
. Polecenie PARSE COPY pozwala nam następnie skopiować dane do innej reguły, w tym przypadku reguła ta jest [TO </code>]
... więc wchodzimy do zmiennej C wszystko do samego początku <
.
Fajnie , co? :-)
Technicznie rzecz biorąc, mógłbym bardziej się ogolić, na przykład szukając, TO "</"
a to oszczędza trzy postacie - nie trzeba dopasowywać całego </code>
tagu końcowego, gdy tylko </
to zrobi. Podobne argumenty można by podać dla tagu początkowego. Ale w Rebmu chodzi o umiejętność gry w golfa ... nawet jeśli początkowo wydaje Ci się, że wygląda dziwnie!
AKTUALIZACJA : /body
sztuczka jest wyjęta z torby, ale podobnie pozostawiam ją taką, jaka jest ... ponieważ myślę, że w ten sposób jest bardziej edukacyjna.