[英]Regex matching: long String in Scala
我在val response: String
存儲了一個很長的內存字符串val response: String
看起來像這樣的val response: String
HTTP / 1.1 200 OK
服務器:Apache
其他:標題
<響應>
<XML>
---更多的XML ---
</ XML>
</響應>
0
我想提取
<響應>
...
</響應>
字符串的一部分。 到目前為止,我有這個:
"<response>.*?</response>".r findFirstIn response
...但是由於某種原因,Scala返回None。 我確實想出了一種使用索引和slice函數執行此操作的方法,但是使用regex必須有一種整潔的方法。 有人知道嗎?
首先,在處理XML響應時使用XML解析器可能是一個更好的主意。 乍一看似乎有些矯kill過正,但是隨着項目的發展,您很有可能最終不得不解析更復雜的XML文檔,而使用正則表達式則比使用成熟的XML解析器要困難得多。
無論如何,此正則表達式有效:
"(?s)<response>.*?</response>".r findFirstIn response
(?s)
設置DOTALL
標志 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.