Java - 如何使用正则表达式匹配器和模式在任何HTML标记内打印

时间:2017-03-25 16:49:46

标签: java regex

我正在编写一个控制台命令来打印用户所需的任何HTML标记内的内容。命令如下:

ALL <tag>

其中<tag>例如<b>,程序作业是查看HTML代码并仅写入该标记内的内容。

HTML代码示例:

<html>
   <head>
      <title>Sample "Hello, World" Application</title>
   </head>
   <body bgcolor=white>
      <table border="0" cellpadding="10">
         <tr>
            <td>
               <img src="images/springsource.png">
            </td>
            <td>
               <h1>Sample "Hello, World" kraljivan488@gmail.com</h1>
            </td>
         </tr>
      </table>
      <p>This is the home page for the HelloWorld blaz13@gmail.com </p>
      <p>To prove that they work, you can execute either of the 192.168.1.1</p>
      <ul>
         <li>To a <a href="hello.jsp">JSP page</a>.</li>
         <li>To a <a href="hello">servlet</a>.</li>
      </ul>
   </body>
</html>

它必须是正则表达式,因为还有一个控制台命令来编写此命令使用的正则表达式。

我使用"<tag.*<\\/tag>"。它还会打印标签。

我需要使用什么正则表达式?

1 个答案:

答案 0 :(得分:0)

试试这个

String regex = "<" + tag + "([^>]+?)"

那么它的作用是在标签的开头再次匹配,当它吸引第一个>时,停止并记住标签内的所有内容,这就是你想要的结果,你只需要处理匹配以提取结果。

Matcher matcher = Pattern.compile(regex).matcher(yourString);
String result = matcher.group(1); // our capturing in the regex