【发布时间】:2023-04-04 01:00:01
【问题描述】:
我有以下格式的数据。我需要去除出现在<s:Envelope之前的所有数据。
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Fri, 05 May 2017 09:52:02 GMT
Content-Length: 338962
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body><RetrieveStoredRoutesResponse xmlns="http://schema.website.com">
如何使用正则表达式做到这一点?
【问题讨论】:
-
你在使用 Perl?只需遍历文件并丢弃所有行,直到找到以该模式开头的行。
-
@dan1111 数据存在于一个变量中,该变量是 webservice 的响应。所以我需要一个正则表达式或其他东西来删除 HTTP 部分
-
这是一个 HTTP 响应流,通常正文不一定以
<s:Envelope开头。要获得正文,需要剥离 HTTP 标头。这可以通过s/\A(?:^HTTP.*?(?:^.+$)*^$)+//sm实现。演示:ideone.com/LEPpkQ