繁体   English   中英

如何提取HTML的 <td> 在Java中使用正则表达式标记数据?

[英]How to extract HTML's <td> tag data using regex in Java?

我试图使用Java从电子邮件中读取用户名和密码,它以html格式返回邮件内容,我只想提取<td>标签下的用户名和密码。 以下是我的HTML代码段-

<table width="200">
   <tbody>
     <tr>
        <td colspan="2">Your Account Details:</td>
     </tr>
      <tr>
        <td>EmailId:</td>
        <td><a class="moz-txt-link-abbreviated" href="mailto:jainish.m.kapadia@trimantra.net">jainish.m.kapadia@trimantra.net</a></td>
      </tr>
      <tr>
         <td>Password:</td>
         <td>C3mRXh+|n#1J</td>
      </tr>
  </tbody>
</table>

我该如何实现?

请不要尝试使用RegEx解析HTML,以获取有关为什么不应该尝试使用此方法的详细答案,请参阅此SO 答案

您可以使用jsoup来解析HTML字符串,如下所示:

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);

Element content = doc.getElementById("content");
Elements links = content.getElementsByTag("a");
for (Element link : links) {
  String linkHref = link.attr("href");
  String linkText = link.text();
}

jsoup还提供了用于分层导航的方法,例如

siblingElements();
nextElementSibling();

等等。

您可以使用以下代码段:

String str = "your html";
Pattern pattern = Pattern.compile("(<td>(.*?)<\\/td>)");
Matcher matcher = pattern.matcher(str);

这将带回所有<td>标记。 现在,您可以遍历matcher并获取所需的字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM