[英]How to get the data from line number n to last line from a multi-line string in ruby?
在 Ruby 中有更好的方法來處理 HTTP 請求,例如使用標准庫的Net::HTTP
。
說了這么多,我來回答你的問題。
HTTP 標准指定標頭和正文由僅包含 CRLF ( \\r\\n
) 的空行分隔。 標題的每一行也以 CRLF 結尾。 因此,我們可以簡單地在第一次出現兩個 CRLF 時拆分響應,即在字符串"\\r\\n\\r\\n"
。
由於這個序列也可能出現在正文中,我們需要指定我們希望我們的拆分最多有 2 個元素。
header, body = response.split("\r\n\r\n", 2)
請注意,盡管如此,最后的標題行不會以"\\r\\n"
結尾,但這應該不是問題。 技術上更正確的版本是在"\\r\\n"
后跟一個"\\r\\n"
處拆分。 這樣我們就不會在拆分時去掉尾隨的"\\r\\n"
。 這可以通過使用后視的正則表達式來完成:
header, body = response.split(/(?<=\r\n)\r\n/, 2)
不過,您在標題中的問題的答案有點不同:
如何從 ruby 中的多行字符串獲取從第 n 行到最后一行的數據?
response.lines[n..].join
(在 Ruby 2.6 之前,范圍需要指定為n..-1
。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.