【发布时间】:2016-01-27 00:44:34
【问题描述】:
我相信对正则表达式有疑问,但也许有更好的解决方案。
我喜欢从网站中提取 JSON 数据: https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/
正如我在 html 代码中看到的,有一个正则表达式的起点:
<script>var edgePortal = window.edgePortal || {}; edgePortal.vms = {"id":"20151028", ....
以<script>结束
我试图在 github 上搜索,也许有人有一些正则表达式值来提取这个 JSON,但没有找到任何东西。
我知道这些数据不会每天都在变化,并且可以手动进行提取 + 一些代码清理(添加空格/制表符等),但我喜欢使用 C++/Qt 进行此操作
在 Qt 中已经有“下载”html 的功能和一些基本的正则表达式来提取这些数据。我不知道我可以使用什么过滤器来获取它们。
从"softwareList": [(和很多行...)到],"version":的过滤器是否有效,如何编写?
更新: 我试图从中提取:
{
"softwareList": [
{
"softwareName": "VirtualBox",
"osList": [
"Windows",
"Mac",
"Linux"
]
}
],
"version": "20151028",
"active": true,
"__id": "cbd5c5cd-4e47-40c4-9897-efa391d55d9d",
"__colId": "vms",
"_rid": "5AVxAKn1WwDzAAAAAAAAAA==",
"_ts": 1450222713,
"_self": "dbs/5AVxAA==/colls/5AVxAKn1WwA=/docs/5AVxAKn1WwDzAAAAAAAAAA==/",
"_etag": "\"00001a01-0000-0000-0000-5670a4790000\"",
"_attachments": "attachments/"
}
as (?=softwareList)(.*?)(?=version) 但看起来不是很好:
https://regex101.com/r/eZ1gT7/285
【问题讨论】:
-
您发布链接的网站解释了正则表达式的工作原理,您找不到基于此的解决方案吗?
-
如果您发布了您希望通过将正则表达式应用于示例文本来获得的匹配,那就太好了