正则表达式从复杂html中提取所需内容
想要从包含大量html标签的文本中提取特定的内容?java正则表达式可以轻松实现这一目标。
问题描述:如何从如下html文本中过滤提取"aidu.com"、"qq.com"和"www.aaa.cn"等内容?
<p>++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++</p>
答案:
string html = "<a>www.baidu.com</a><a>www.qq.com</a><a>www.aaa.cn</a>www.eee.cn"; string reg = "www.*?(com|cn)"; matcher 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":进行不区分大小写的匹配。