「java正则连接」正则表达式连接

博主:adminadmin 2023-01-10 17:06:09 906

本篇文章给大家谈谈java正则连接,以及正则表达式连接对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java正则 提取网页中的连接

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.ArrayList;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Main

{

public static String getHTML(String spec, String charsetName)

{

try

{

URL url = new URL(spec);

HttpURLConnection huc = (HttpURLConnection) url.openConnection();

InputStreamReader isr = new InputStreamReader(huc.getInputStream(), charsetName);

BufferedReader br = new BufferedReader(isr);

StringBuilder builder = new StringBuilder();

String line = null;

while(null != (line = br.readLine()))

{

builder.append(line);

}

br.close();

isr.close();

huc.disconnect();

return builder.toString();

}

catch(Exception e)

{

e.printStackTrace();

}

return "";

}

public static ListString getAttr(String html, String nodeName, String attr)

{

String regex = "(?i)" + nodeName + "\\b[^]*" + attr + "[=\"\'\\s]+([^\"\']*)[\"\']?[^]*";

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(html);

ArrayListString list = new ArrayListString();

while(matcher.find())

{

list.add(matcher.group(1));

}

return list;

}

public static void main(String[] args)

{

String html = getHTML("ht和谐tp://zhidao.baidu.com/question/562228126305552124.html?entry=qb_ihome_tag", "UTF-8");

ListString list = getAttr(html, "a", "href");

for(int i = 0; i  list.size(); i++)

{

System.out.println(list.get(i));

}

}

}

Java 正则表达式 提取html超链接

你这个错就错在使用了.*

在正则里.*指的是匹配所有字符,而且是匹配优先,对于你这个正则来说到a\\shref=\"(http:为止都是正常的,但后面的.*就会一直匹配到文件的最后,因为对于.*来说是匹配所有字符,所以后面的一切都是匹配的.匹配到最后结尾时,再来进行结尾检查,但你的正则是以/a结尾的,不符合,所以就再回头向回一个个的查,一直查到(.*[^])中的.*匹配.

好了,最后你这个表达式最终的结果其实就是匹配以a\\shref=\"(http: 开头,以[^])/a结尾,中间是任意字符的表达式

(急)如何用java正则表达式捕获超链接,能匹配双引号或单引号.

a.+?href

这里使用 . 通配,? 找最小匹配,就能实现不管a 和href间有什么内容都能匹配到了,有没有样式,相同还是不同的样式,都没问题。

单双引号的问题,可以使用 [\"\'] 这种选择模式,同时使用()括号给括起来,以便在后面引用。

java正则连接的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于正则表达式连接、java正则连接的信息别忘了在本站进行查找喔。