簡體   English   中英

正則表達式匹配:Scala中的長字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM