0

我有一个非常长的内存字符串存储在一个val response: String看起来像

HTTP/1.1 200 OK
服务器:Apache
其他:标头

<response>
<xml>
---更多 XML---
</xml>
</response>
0

我想提取

<响应>
...
</响应>

字符串的一部分。到目前为止,我有这个:

"<response>.*?</response>".r findFirstIn response

...但由于某种原因,Scala 返回 None。我确实想出了一种使用索引和切片函数的方法,但必须有一个使用正则表达式的简洁方法。有谁知道怎么做?

4

1 回答 1

5

首先,在处理 XML 响应时使用 XML 解析器可能是一个更好的主意。一开始可能看起来有点矫枉过正,但随着项目的发展,您很可能最终不得不解析更复杂的 XML 文档,而使用正则表达式比使用成熟的 XML 解析器要困难得多。

无论如何,这个正则表达式有效:

"(?s)<response>.*?</response>".r findFirstIn response

(?s)设置DOTALL标志

于 2012-07-17T10:02:02.523 回答