Rebmu, 91 ký tự
Do Catch-22 tôi phải đăng bài để nhận URL của câu trả lời này. :-/ Được rồi, đã rõ.
paTSrd http://codegolf.stackexchange.com/a/28154[th<a name="28154">th<code>cpCto</code>]prC
Rebmu là một phương ngữ của Rebol, và bạn có thể đọc tất cả mọi thứ . Rebol tương đương ở đây sẽ là:
parse to-string read http://codegolf.stackexchange.com/a/28154 [
thru <a name="28154">
thru <code>
copy c to </code>
]
print c
PARSE của Rebol là một loại câu trả lời dễ hiểu cho RegEx. Nó bắt đầu một vị trí phân tích cú pháp của đầu vào (có thể là bất kỳ chuỗi nào, bao gồm các khối cấu trúc ... dữ liệu nhị phân ... hoặc các loại chuỗi) . Các quy tắc là một ngôn ngữ cho cách vị trí phân tích di chuyển.
Thẻ và URL thực sự chỉ là chuỗi dưới mui xe trong ngôn ngữ. Nhưng chúng là "hương vị", và vì Rebol được gõ động, bạn có thể kiểm tra loại đó. Ví dụ, READ biết rằng nếu bạn cung cấp cho nó một chuỗi có hương vị URL, thì nó sẽ gửi đến một trình xử lý lược đồ để thực hiện việc đọc. (Trong trường hợp này, một người đã đăng ký HTTP). Bạn lấy lại các byte UTF-8 theo mặc định, vì vậy chúng tôi sử dụng chuỗi để giải mã điều đó và nhận một loạt các điểm mã trong một chuỗi Unicode bình thường.
Trong trường hợp phương ngữ phân tích cú pháp, việc gặp một loại thẻ chỉ được khớp với nhau như thể đó là một chuỗi trông giống như thẻ. THRU là một hướng dẫn có nghĩa là "bỏ qua cho đến khi quy tắc tiếp theo được khớp, và sau đó đặt vị trí khớp vào cuối của những gì bạn vừa khớp." (TO là tương tự phù hợp, nhưng để lại vị trí phân tích cú pháp trước phần tử).
Vì vậy, chúng tôi zip dọc theo <a name="28154">
. Sau đó, chúng tôi nén qua lần xuất hiện tiếp theo <code>
, với vị trí phân tích cú pháp của chúng tôi hiện được đặt ngay sau >
. Lệnh COPY của PARSE sau đó cho phép chúng tôi sao chép dữ liệu theo quy tắc khác, trong trường hợp này quy tắc đó là [TO </code>]
... vì vậy chúng tôi nhận được vào biến C mọi thứ cho đến trước đó <
.
Thật tuyệt phải không? :-)
Về mặt kỹ thuật, tôi có thể loại bỏ nó nhiều hơn, ví dụ bằng cách tìm kiếm TO "</"
và lưu ba ký tự - không cần phải khớp toàn bộ </code>
thẻ kết thúc khi cần </
làm. Đối số tương tự tôi có thể thực hiện cho thẻ bắt đầu. Nhưng Rebmu là về chơi golf biết chữ ... ngay cả khi bạn có thể nghĩ rằng nó trông kỳ lạ lúc đầu!
CẬP NHẬT : /body
mánh khóe đã ra khỏi túi, nhưng tôi cũng sẽ để nó như vậy ... bởi vì tôi nghĩ nó mang tính giáo dục hơn theo cách này.