我的 HTML 页面如下所示:
<htm>
<section class="posts">
<script type="application/ld+json">
{
"url": "http://schema.org",
"title": "some Title"
}
</script>
<article class="post">
</html>
我想提取 <script type="application/ld+json">
之间的数据和 </script>
.我已尝试使用以下代码,但它不起作用。
Pattern pattern = Pattern.compile("<script type=\"application\\/ld\\+json\">(.*?)</script>");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
我做错了什么吗? 谢谢。
最佳答案
从上面的 HTML 中选择 JSON 的正则表达式
<script type="application\/ld\+json">(.*)<\/script>
在 Java 代码中:
String str = "<htm><section class=\"posts\"><script type=\"application/ld+json\">{\"url\": \"http://schema.org\", \"title\": \"some Title\"}</script><article class=\"post\"></html>";
String regex = "<script type=\"application\\/ld\\+json\">(.*)<\\/script>";
Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
打印
{"url": "http://schema.org", "title": "some Title"}
参见 DEMO解释
关于java - 在 HTML 标签之间提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31301776/