Java正则表达式如何提取以.com或.cn结尾的网址?

Java正则表达式高效提取文本信息

Java编程中,经常需要从文本中提取符合特定模式的内容。正则表达式为此提供了高效的解决方案。本文以一个案例演示如何利用Java正则表达式提取特定信息。

问题:

从包含多个网址的文本中,仅提取以“.com”或“.cn”结尾的网址。

解决方案: 使用正则表达式www\.\S*?(com|cn)匹配以“www.”开头,并以“.com”或“.cn”结尾的字符串。www\.匹配“www.”,\S*?匹配任意非空白字符(非贪婪模式),(com|cn)匹配“.com”或“.cn”。Pattern.CASE_INSENSITIVE标志确保匹配不区分大小写。

Java代码示例:

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

Pattern pattern = Pattern.compile(reg, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(html);
while (matcher.find()) {
    System.out.println(matcher.group());
}

输出结果:

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

此代码演示了如何编译正则表达式,使用Matcher类进行匹配,并循环输出匹配结果。 通过调整正则表达式,可以灵活地提取不同模式的文本信息,实现高效的文本数据处理。