我想从锚标记中提取内部文本以及正则表达式中的内部html标记。我已尝试但无法找到。我在下面提供了样本结构。
我的正则表达式是:( class =" related-article"(?:\ s | \ n))href ="(。?)& #34;(大于。(*)?)"
我需要匹配以下html内容中的正则表达式(tag):
<a class="related-article" href="10.1182/blood-2017-11-812990">
<i>Blood</i> Commentary</a> on this article in this issue.</p>
答案 0 :(得分:3)
如果要从HTML中提取数据,请使用 XPath 。
(你的问题中的标签表示Java。或者你的意思是Javascript?)
我不是Java用户,而是使用C#编程,因此请将此代码作为伪代码方向建议,而不是复制粘贴编译示例。
XPathExpression expr = xpath.compile("//p/a[@class='related-article']");
NodeList list = (NodeList)expr.evaluate(doc, XPathConstants.NODESET);
foreach(Node node in list)
{
string text = node.InnerText;
string href = node.Attributes["href"].Value;
}
答案 1 :(得分:0)
您可能会发现以下内容:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public static void main(String[]) {
String sample = "<!---DOCTYPE><html><body></body></html>";
Pattern p = Pattern.compile("<(.*?)>");
Matcher m = p.matcher(sample);
while (m.find()) {
String group = m.group(1);
if (group.contains("!") {
continue;
}
System.out.print(group);
}
}
返回:htmlbody/body/html