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