Rebmu, 91 caractères
En raison du Catch-22, je dois poster pour obtenir l'URL de cette réponse. :-/ OK, j'ai compris.
paTSrd http://codegolf.stackexchange.com/a/28154[th<a name="28154">th<code>cpCto</code>]prC
Rebmu est un dialecte de Rebol et vous pouvez tout lire à ce sujet . L'équivalent de Rebol serait ici:
parse to-string read http://codegolf.stackexchange.com/a/28154 [
thru <a name="28154">
thru <code>
copy c to </code>
]
print c
PARSE de Rebol est une sorte de réponse hautement alphabétisée à RegEx. Il commence une position d'analyse de l'entrée (qui peut être n'importe quelle série, y compris les blocs structurels ... données binaires ... ou les types de chaîne) . Les règles sont une langue pour la façon dont la position d'analyse se déplace.
Les balises et les URL ne sont en réalité que des chaînes cachées dans la langue. Mais ils sont "parfumés", et comme Rebol est typé dynamiquement, vous pouvez vérifier ce type. READ, par exemple, sait que si vous lui donnez une chaîne de caractères à base d'URL, il devrait alors être envoyé à un gestionnaire de schéma pour effectuer la lecture. (Dans ce cas, celui enregistré pour HTTP). Vous récupérez les octets UTF-8 par défaut. Nous utilisons donc to-string pour le décoder et obtenir une série de points de code dans une chaîne Unicode normale.
Dans le cas du dialecte d'analyse, la recherche d'un type de balise correspond simplement à une chaîne ressemblant à la balise. THRU est une instruction qui signifie "sauter jusqu'à ce que la règle suivante soit mise en correspondance, puis placez la position du match à la fin de ce que vous venez de faire correspondre". (TO est l'analogue qui correspond, mais laisse la position d'analyse avant l'élément).
Nous passons donc le long de la <a name="28154">
. Nous passons ensuite à la prochaine occurrence de <code>
, notre position d’analyse étant maintenant située juste après le >
. La commande COPY de PARSE nous permet ensuite de copier les données dans une autre règle. Dans ce cas, cette règle est [TO </code>]
... nous introduisons donc dans la variable C tout jusqu'à maintenant <
.
Cool , hein? :-)
Techniquement, je pourrais en TO "</"
économiser plus, par exemple en cherchant et en sauvegardant trois caractères - il n'est pas nécessaire de faire correspondre la </code>
balise de fin entière quand cela </
conviendrait. Des arguments similaires pourraient me être faits pour la balise de début. Mais Rebmu concerne le golf lettré ... même si vous pensez que ça a l'air bizarre au début!
UPDATE : le /body
truc est sorti du sac, mais je vais pareillement le laisser tel quel ... parce que je pense que c'est plus éducatif de cette façon.