如下,正则怎么去截取想得到的数据

如下,正则怎么去截取想得到的数据

服务端返回的结果如下怎么截取到这几个字(返回的是纯xml字符串) “北京市海淀区燕园街道北京大学”

<regeocode>

<formatted_address>

北京市海淀区燕园街道北京大学

</formatted_address>

<addressComponent>

</addressComponent>

</regeocode>


回答:

既然服务端返回的是 xml 格式的数据,那并不推荐使用正则表达式去解析,而是直接用浏览器提供的 DOMParser 去做,可以参考 MDN 文档,或者使用一些封装好的 xml 解析库也可以。

在题主这个场景下,基本使用如下:

const parser = new DOMParser();

const parsedDOM = parser.parseFromString(resp, "application/xml");

// 北京市海淀区燕园街道北京大学

parsedDOM.getElementsByTagName("formatted_address")[0].childNodes[0].nodeValue;

如果实在想用正则表达式,也可以:

resp.match(/(?<=<formatted_address>)\s*([^\s]+)\s*(?=\<\/formatted_address>)/)

但是如上所述,并不推荐,因为可能存在性能问题,而且代码不好维护,不如解析来得简单明了。


回答:

`<regeocode>

<formatted_address>

北京市海淀区燕园街道北京大学

</formatted_address>

<addressComponent>

</addressComponent>

</regeocode>`.match(/北京市海淀区燕园街道北京大学/gm)[0]


回答:

前端用的什么框架?
vue直接v-html=""
js innerHtml = ''


回答:

re.findall("<formatted_address>(.*?)</formatted_address>", response.text, re.S)


回答:

<formatted_address>\s*([\s\S]*)\s*<\/formatted_address>

[^>\s]+(?=\s*<\/formatted_address>)

以上是 如下,正则怎么去截取想得到的数据 的全部内容, 来源链接: utcz.com/p/169374.html

回到顶部