Rebmu,91个字符
由于Catch-22,我必须发布以获取此答案的URL。:-/ 好,知道了。
paTSrd http://codegolf.stackexchange.com/a/28154[th<a name="28154">th<code>cpCto</code>]prC
Rebmu是Rebol的方言,您可以阅读所有有关它的内容。此处等效的Rebol为:
parse to-string read http://codegolf.stackexchange.com/a/28154 [
thru <a name="28154">
thru <code>
copy c to </code>
]
print c
Rebol的PARSE是对RegEx的高度素养解答。它开始输入的解析器位置(可以是任何序列,包括结构块...二进制数据...或字符串类型)。规则是解析位置如何移动的语言。
标签和URL实际上只是语言中的底层字符串。但是它们是“风味的”,随着Rebol被动态键入,您可以检查该类型。例如READ知道,如果您给它提供URL风格的字符串,则应将其分派给方案处理程序以进行读取。(在这种情况下,该注册为HTTP)。默认情况下,您会获取UTF-8字节,因此我们使用to-string对其进行解码,并在普通Unicode字符串中获得一系列代码点。
在解析方言的情况下,遇到标记类型只是像看起来像标记的字符串一样被匹配。THRU是一条指令,意思是“跳过直到随后的规则匹配,然后将匹配位置放在刚匹配的内容的末尾”。(TO是匹配的类似物,但将解析位置保留在元素之前)。
因此,我们沿zip前进<a name="28154">
。然后我们跳过下一次出现的<code>
,解析位置现在位于的后面>
。然后,PARSE的COPY命令使我们可以将数据复制到另一个规则,在这种情况下,该规则是[TO </code>]
...,因此我们将所有内容都放入变量C中,直到此之前<
。
酷吧?:-)
从技术上讲,我可以将其剃光更多,例如通过查找TO "</"
,这样可以节省三个字符-只需匹配就不必匹配整个</code>
end标签</
。我可以为开始标签设置类似的参数。但是Rebmu是关于打高尔夫球的知识 ……即使您可能一开始觉得它看起来很奇怪!
更新:/body
诀窍不言而喻,但我类似地将其保留不变...因为我认为这种方式更具教育意义。