A. java正则匹配A标签
publicclassTestSort
{
publicstaticvoidmain(String[]args)
{
Stringreg="\<a\s*href\s*[\=\w"'\s]+\s*class[\=\w"'\s]+\s*title[\=\w"'\s]+\s*target[\=\w"'\s]+\s*\>(正则)\<\s*/\s*a\s*\>(表达式)";
Stringstr="<ahref="xxxxxx"class="zdbq"title="xxxxx"target="_blank">正则</a>表达式";
System.out.println(str.toLowerCase().replaceAll(reg,"$1$2"));
}
}
B. java正则去除a标签 <a>啊实打实的请问</a> 把A标签中的内容替换成空。
String str = "<a>啊实打实的请问</a>";
str = str.replaceAll("[\u4e00-\u9fa5]", "");
用[\u4e00-\u9fa5]可以匹配汉字
希望对你有帮助
C. java 怎么获取网站中所有的a标签,以及a标签里面的内容
//以下演示针对已经获取html源码后进行过滤,把过滤后的地址进行保存!
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
importjava.io.UnsupportedEncodingException;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassDay02_ReadUrl{
//http过滤!
finalstaticStringhttp="(http|ftp|https):\/\/[\w\-_]+(\.["
+"\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?";
//a标签过滤!
finalstaticStringhref="<a\b[^>]+\bhref="([^"]*)"[^>]*>([\s\S]*?)</a>";
//文件目录
staticFiledir=newFile("k:/Test");
publicstaticvoidmain(String[]args){
//创建关联读取文件
FilereadFile=newFile(dir,"TestUrl.txt");
Filehttp=newFile(dir,"http.txt");
Filehref=newFile(dir,"href.txt");
//如果文件存在就继续!
if(readFile.canExecute()){
init(readFile,http,href);
}
}
//开始读取文件!
privatestaticvoidinit(Filefile,Filehttp,Filehref){
BufferedReaderbr=null;
finalPrintWriterp1,p2;
try{
br=newBufferedReader(newInputStreamReader(newFileInputStream(file),"GBK"));
p1=newPrintWriter(newFileOutputStream(http,false),true);
p2=newPrintWriter(newFileOutputStream(href,false),true);
for(Stringstr=br.readLine();str!=null;str=br.readLine()){
getHttp(str,p1);
getHref(str,p2);
}
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(br!=null){
try{
br.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
//获取所有链接!
privatestaticvoidgetHttp(Stringstr,PrintWriterpw){
finalMatcherm=Pattern.compile(http).matcher(str);
while(m.find()){
pw.println(m.group());
}
}
//获取所有A标签
privatestaticvoidgetHref(Stringstr,PrintWriterpw){
finalMatcherm=Pattern.compile(href).matcher(str);
while(m.find()){
pw.println(m.group());
}
}
}
D. 我在javaweb中做了一个邮件验证的功能,收到的邮件中的超链接不能点,好像把A标签给我过滤掉了。
163的能点前一阵刚验证过 没问题的 看看你的代码吧
E. java中filter怎么获取a标签请求的路径
当我们访问index.jsp/时,其实并不是我们浏览器真正访问到了服务器上的index.jsp 文件,而是先由代理服务器去访问index.jsp。
代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的。
所以index.jsp中通过 request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出获得客户端真实IP地址 的方法:
public class Myfilter implements Filter {
public void destroy() {
}
private HttpServletRequest request;
private HttpServletResponse response;
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
request = (HttpServletRequest) arg0;
response = (HttpServletResponse) arg1;
System.out.println(request.getRequestURI());
System.out.println("===ff===="+request.getQueryString());
if("1".equals(request.getRequestURI().substring(("/"+request.getContextPath()).length()))){
request.getRequestDispatcher("/my.jsp").forward(request, response);
return;
}
arg2.doFilter(request, arg1);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
F. java处理html标签问题:如何去除html标签中的<a>标记如题 谢谢了
String reg = "(?<=http\\://[a-zA-Z0-9]{0,100}[.]{0,1})[^.\\s]*?\\.(com|cn|net|org|biz|info|cc|tv)"; Pattern p = Pattern.compile(reg, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(strHomePage); boolean blnp = m.find(); if (blnp == true) { return m.group(0); }
G. 求java正则,效果是删除html里herf不等于abcd开头的<a>标签
html.replaceall("<a href=\"(?!abcd)[^\"]*\"[^>]*>(.*?)</a>","$1")
H. java 正则表达式提取<a></a>标签中的链接实现pdf文件下载
importjava.io.ByteArrayOutputStream;
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.net.HttpURLConnection;
importjava.net.URL;
importjava.util.Scanner;
importorg.htmlparser.Node;
importorg.htmlparser.NodeFilter;
importorg.htmlparser.Parser;
importorg.htmlparser.filters.NodeClassFilter;
importorg.htmlparser.tags.LinkTag;
importorg.htmlparser.util.NodeList;
publicclassCrawler{
publicstaticvoidmain(String[]args)throwsException{
//需要扫描下载的网页
//"
]
System.out.println("请输入您需要下载的网页:");
Scannersc=newScanner(System.in);
Stringhtml=sc.next();
System.out.println("Downloading!pleasewait...(文件默认下载到D盘PDFDownload文件夹下,运行后该文件夹下没有文件,请联系作者!Q:133396743)");
Parserparser=newParser(html);
parser.setEncoding("UTF-8");
//过滤<a>标签
NodeFilteraNodeFilter=newNodeClassFilter(LinkTag.class);
//使用parser根据filter来取得所有符合条件的节点
NodeListnodeList=parser.extractAllNodesThatMatch(aNodeFilter);
String[]url=newString[nodeList.size()];
intindex=0;
//4、对取得的Node进行处理
for(inti=0;i<nodeList.size();i++){
Nodenode=nodeList.elementAt(i);
StringlinkURL="";
//如果链接类型为<a/>
if(nodeinstanceofLinkTag){
LinkTaglink=(LinkTag)node;
linkURL=link.getLink();
if(linkURL.length()>4){
if(".pdf".equals(linkURL.substring(linkURL.length()-4,linkURL.length()))){
StringfileName=linkURL.substring(linkURL.lastIndexOf("/"),linkURL.length());
URLpdfUrl=newURL(linkURL);
HttpURLConnectionconn=(HttpURLConnection)pdfUrl.openConnection();
//设置超时间为3秒
conn.setConnectTimeout(3*1000);
//防止屏蔽程序抓取而返回403错误
conn.setRequestProperty("User-Agent","Mozilla/4.0(compatible;MSIE5.0;WindowsNT;DigExt)");
//得到输入流
InputStreaminputStream=conn.getInputStream();
//获取自己数组
byte[]getData=readInputStream(inputStream);
//文件保存位置
FilesaveDir=newFile("d:\PDFDownload");
if(!saveDir.exists()){
saveDir.mkdir();
}
Filefile=newFile(saveDir+File.separator+fileName);
FileOutputStreamfos=newFileOutputStream(file);
fos.write(getData);
if(fos!=null){
fos.close();
}
if(inputStream!=null){
inputStream.close();
}
}
}
}
}
System.out.println("info:["+html+"]downloadsuccess");
}
publicstaticbyte[]readInputStream(InputStreaminputStream)throwsException{
byte[]buffer=newbyte[1024];
intlen=0;
ByteArrayOutputStreambos=newByteArrayOutputStream();
while((len=inputStream.read(buffer))!=-1){
bos.write(buffer,0,len);
}
bos.close();
returnbos.toByteArray();
}
}
编译的时候需要在工程中添加 htmlparser.jar
这代码有什么问题你可以继续追问。可以加我Q 幺三个三酒六七四三