Java正则表达式使用
程序员文章站
2022-05-04 16:49:59
一:抓取网页中的email地址
利用正则表达式匹配网页中的文本
复制代码 代码如下:
[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+
将网页内容分...
一:抓取网页中的email地址
利用正则表达式匹配网页中的文本
复制代码 代码如下:
[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+
将网页内容分割提取
import java.io.bufferedreader; import java.io.filenotfoundexception; import java.io.filereader; import java.io.ioexception; import java.util.regex.matcher; import java.util.regex.pattern; public class emailspider { public static void main(string[] args) { try { bufferedreader br = new bufferedreader(new filereader("c:\\emailspider.html")); string line = ""; while((line=br.readline()) != null) { parse(line); } } catch (filenotfoundexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } } private static void parse(string line) { pattern p = pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+"); matcher m = p.matcher(line); while(m.find()) { system.out.println(m.group()); } } }
打印结果:
现在你找到这么多邮箱地址,用上javamail的知识,你可以群发垃圾邮件了,呵呵!!!
二:代码统计
import java.io.bufferedreader; import java.io.file; import java.io.filenotfoundexception; import java.io.filereader; import java.io.ioexception; public class codecounter { static long normallines = 0;//正常代码行 static long commentlines = 0;//注释行 static long whitelines = 0;//空白行 public static void main(string[] args) { //找到某个文件夹,该文件夹下面在没有文件夹,这里没有写递归处理不在同一文件夹的文件 file f = new file("e:\\workspaces\\eclipse\\application\\javamailtest\\src\\com\\java\\mail"); file[] codefiles = f.listfiles(); for(file child : codefiles){ //只统计java文件 if(child.getname().matches(".*\\.java$")) { parse(child); } } system.out.println("normallines:" + normallines); system.out.println("commentlines:" + commentlines); system.out.println("whitelines:" + whitelines); } private static void parse(file f) { bufferedreader br = null; //表示是否为注释开始 boolean comment = false; try { br = new bufferedreader(new filereader(f)); string line = ""; while((line = br.readline()) != null) { //去掉注释符/*前面可能出现的空白 line = line.trim(); //空行 因为readline()将字符串取出来时,已经去掉了换行符\n //所以不是"^[\\s&&[^\\n]]*\\n$" if(line.matches("^[\\s&&[^\\n]]*$")) { whitelines ++; } else if (line.startswith("/*") && !line.endswith("*/")) { //统计多行/*****/ commentlines ++; comment = true; } else if (line.startswith("/*") && line.endswith("*/")) { //统计一行/**/ commentlines ++; } else if (true == comment) { //统计*/ commentlines ++; if(line.endswith("*/")) { comment = false; } } else if (line.startswith("//")) { commentlines ++; } else { normallines ++; } } } catch (filenotfoundexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } finally { if(br != null) { try { br.close(); br = null; } catch (ioexception e) { e.printstacktrace(); } } } } }
以上内容就是本文给大家分享的java在正则表达式的使用,希望大家喜欢。