如何用Java正则表达式从HTML文本中提取特定网址?

正则表达式从复杂html中提取所需内容

想要从包含大量html标签的文本中提取特定的内容?java正则表达式可以轻松实现这一目标。

问题描述:如何从如下html文本中过滤提取"www.baidu.com"、"www.qq.com"和"www.aaa.cn"等内容?

++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++

答案:

string html = "www.baidu.comwww.qq.comwww.aaa.cnwww.eee.cn";
string reg = "www.*?(com|cn)";

match

er matcher = pattern.compile(reg, pattern.case_insensitive).matcher(html); while (matcher.find()) { system.out.println(matcher.group()); }

输出结果:

www.baidu.com
www.qq.com
www.aaa.cn
www.eee.cn

正则表达式说明:

  • "www":匹配"www"字符串。
  • " .*?":匹配任意数量的非换行符字符,但尽可能少匹配。
  • "(com|cn)":匹配以".com"或".cn"结尾的字符串。
  • "pattern.case_insensitive":进行不区分大小写的匹配。