Java使用正则表达式匹配获取链接地址的方法示例

2025-05-29 0 39

本文实例讲述了Java使用正则表达式匹配获取链接地址的方法。分享给大家供大家参考,具体如下:

获取页面中字符串的url地址我们都会使用正则表达式匹配获取了,下面我来给大家总结几个匹配获取链接地址示例。

1、正则表达式中Matcher中find()方法的应用。

2、String对象中的 replaceAll(String regex,String replacement) 方法的使用。通过这个方法去除了不必要的字符串,从而得到了需要的网址和链接文字

例1.超简单的

?

1
2

3

4

5

6

7
String content = "<a href="URL" rel="external nofollow" >";

String pattern= "href="([^" rel="external nofollow" ]*)"";

Pattern p = Pattern.compile(pattern, 2 | Pattern.DOTALL);

Matcher m = p.matcher(content);

if(m.find()) {

System.out.println("url="+m.group(1));

}

例2.上面只能获取带有双“号的a标题中的url,下面我们加以改进可以获取任何状态下的a标题url

?

1
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22
package com.gong.example;

import Java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Simple {

public static void main(String[] args){

String input="<a style=" " href = "https://www.zzvips.com" target="_blank" >www.zzvips.com</a>" +

"<a href = 'http://www.163.com' target='_blank' >www.163.com</a> " +

"<a href=http://www.yahoo.com target=_blank >www.yahoo.com</a>";

String patternString = "\\s*(?i)href\\s*=\\s*("([^"]*")|'[^']*'|([^'">\\s]+))"; //href

Pattern pattern = Pattern.compile(patternString,

Pattern.CASE_INSENSITIVE);

Matcher matcher = pattern.matcher(input);

while (matcher.find()) {

String link=matcher.group();

System.out.println(link);

link=link.replaceAll("href\\s*=\\s*(['|"]*)", "");

System.out.println("--"+link);

link=link.replaceAll("['|"]", "");

System.out.println("---"+link);

}

}

}

例3.我们还可以利用它进行升级获取 获取网址和链接文字哦。

?

1
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36
/*

功能说明:分析字符串s,提取s里面的超链接和链接文字

*/

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class RegTest

{

public static void main(String[] args)

{

//String s="<p id=km>&nbsp;<a href=http://down.yourweb.com>空间</a>&nbsp;|&nbsp;<a ";

String s="</p><p style=height:14px><a href=http://mb.yourweb.com>企业推广</a> | <a href=http://code.yourweb.com>搜索风云榜</a> | <a href=/home.html>关于百度</a> | <a href=http://www.yourweb.com>About Baidu</a></p><p id=b>&copy;2008 Baidu <a href=http://www.yourweb.com>使用百度前必读</a> <a href=http://www.miibeian.gov.cn target=_blank>京ICP证03xxxx号</a> <a href=http://www.zzvips.com><img src=/get_pic/2013/11/22/20131122031447947.gif></a></p></center></body></html><!--543ff95f18f36b11-->";

String regex="<a.*?/a>";

//String regex = "<a.*>(.*)</a>";

Pattern pt=Pattern.compile(regex);

Matcher mt=pt.matcher(s);

while(mt.find())

{

System.out.println(mt.group());

System.out.println();

String s2=">.*?</a>";//标题部分

String s3="href=.*?>";

Pattern pt2=Pattern.compile(s2);

Matcher mt2=pt2.matcher(mt.group());

while(mt2.find())

{

System.out.println("标题:"+mt2.group().replaceAll(">|</a>",""));

}

Pattern pt3=Pattern.compile(s3);

Matcher mt3=pt3.matcher(mt.group());

while(mt3.find())

{

System.out.println("网址:"+mt3.group().replaceAll("href=|>",""));

}

}

}

}

希望本文所述对大家java程序设计有所帮助。

原文链接:http://blog.csdn.net/fancylovejava/article/details/17784697

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java使用正则表达式匹配获取链接地址的方法示例 https://www.kuaiidc.com/115439.html

相关文章

发表评论
暂无评论