我在val response: String
中存储了一个非常长的内存中字符串,看起来像
HTTP / 1.1 200 OK
服务器:Apache
其他:标题
<响应>
< XML>
---更多的XML ---
< / XML>
< /响应>
0
我想提取
<响应>
...
< /响应>
字符串的一部分。到目前为止,我有这个:
"<response>.*?</response>".r findFirstIn response
...但由于某种原因,Scala返回None。我确实找到了使用索引和切片函数执行此操作的方法,但必须有一个使用正则表达式的简洁方法。谁知道怎么做?
答案 0 :(得分:5)
首先,在处理XML响应时使用XML解析器可能要好得多。一开始可能看起来有些过分,但随着项目的发展,很可能你最终不得不解析更复杂的XML文档,这对于正则表达式来说要比使用成熟的XML解析器要困难得多。 / p>
无论如何,这个正则表达式有效:
"(?s)<response>.*?</response>".r findFirstIn response
(?s)
设置DOTALL
flag。