レブム、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は一致する類似物ですが、要素の前に解析位置を残します)。
だから我々は、過去に沿ってジッパー<a name="28154">
。次に、の次のオカレンスを<code>
圧縮して、解析位置を>
。の直後に配置します。PARSEのCOPYコマンドを使用すると、別のルールまでデータをコピーできます。この場合、そのルールは[TO </code>]
...ですので、その直前まで変数Cに入ります<
。
かっこいい?:-)
技術的には、たとえばシークすることでもっと削ることができ、TO "</"
3文字を節約できます。</code>
終了タグ全体を一致させる必要</
はありません。開始タグについても同様の引数を作成できます。しかし、Rebmuはリテラシーゴルフについてです...最初は奇妙に見えるかもしれませんが!
更新:/body
トリックは手に入れられませんが、私はそれをそのままにしておきます...私はそれがこの方法でより教育的だと思うので。