编写程序实现以下功能:利用正则表达式得到一段HTML文本中所有超链接对应的网址,并将网址输出到屏幕上(每行输出一个网址)。
输入格式:
从键盘输入 一段HTML文本,多行输入,空行输入 结束。
输出格式:
输出从HTML文本中提取到的超链接所对应的网址,一行一个网址。
输入样例:
在这里给出一组输入。例如:
<h3 class="c-title">
<a href="https://baijiahao.baidu.com/s?id=1633289774665320636&wfr=spider&for=pc" data-click="{
'f0':'77A717EA',
'f1':'9F63F1E4',
'f2':'4CA6DE6E',
'f3':'54E5243F',
't':'1557660267'
}" target="_blank">
影片《周恩来回延安》在<em>南开大学</em>点映开启全国路演
</a>
</h3>
<a href="https://baijiahao.baidu.com/s?id=1632116753423885280&wfr=spider&for=pc" data-click="{
'f0':'77A717EA',
'f1':'9F73F1E4',
'f2':'4CA6DE6E',
'f3':'54E5243F',
't':'1557660267'
}" target="_blank">
天津“<em>南开大学</em>”——莘莘学子的梦想之地
</a>
输出样例:
在这里给出相应的输出。例如:
https://baijiahao.baidu.com/s?id=1633289774665320636&wfr=spider&for=pc
https://baijiahao.baidu.com/s?id=1632116753423885280&wfr=spider&for=pc
代码:
package PTAJAVA5;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main7 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in); // 创建 Scanner 对象用于读取输入
StringBuilder stringBuilder = new StringBuilder(); // 创建 StringBuilder 对象,用于存储输入的多行文本
String line;
while (cin.hasNextLine()) { // 循环读取输入的每一行
line = cin.nextLine(); // 获取当前行的内容
if (line.isEmpty()) { // 如果当前行为空行,退出循环
break;
}
stringBuilder.append(line); // 将当前行内容添加到 StringBuilder 中
}
String html = stringBuilder.toString(); // 将 StringBuilder 转换为 String,得到完整的 HTML 文本
// 使用正则表达式提取 HTML 中的链接
Pattern pattern = Pattern.compile("href=\"(.*?)\""); // 定义匹配 href 属性的正则表达式
Matcher matcher = pattern.matcher(html); // 创建 Matcher 对象,用于在 HTML 文本中进行匹配
while (matcher.find()) { // 循环查找匹配的链接
String url = matcher.group(1); // 获取匹配到的链接内容(去除 href=" " 部分)
System.out.println(url); // 输出匹配到的链接
}
}
}