Java正则表达式应用
发布时间:2020-12-13 21:18:59 所属栏目:PHP教程 来源:网络整理
导读:学习Java的同学注意了!!! 学习进程中遇到甚么问题或想获得学习资源的话,欢迎加入Java学习交换群,群号码: 183993990 我们1起学Java! 1:抓取网页中的Email地址 利用正则表达式匹配网页中的文本 [w[.-]]@[w[.-]].[w] 将网页内容分割提取 import
1:抓取网页中的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 { 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 void parse(String line) { Pattern p = Pattern.compile([w[.-]]+@[w[.-]]+.[w]+"); Matcher m = p.matcher(line); while(m.find()) { System.out.println(m.group()); } } } 打印结果: 867124664@qq.com 260678675@QQ.com 806208721@qq.com hr_1985@163.com 32575987@qq.com qingchen0501@126.com yingyihanxin@foxmail.com 1170382650@qq.com 1170382650@qq.com yingyihanxin@foxmail.com qingchen0501@126.com 32575987@qq.com hr_1985@163.com 现在你找到这么多邮箱地址,用上JavaMail的知识,你可以群发垃圾邮件了,呵呵!!! 2:代码统计 import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; class CodeCounter { long normalLines = 0;//正常代码行 long commentLines = 注释行 long whiteLines = 空白行 找到某个文件夹,该文件夹下面在没有文件夹,这里没有写递归处理不在同1文件夹的文件 File f = new File(E:WorkspaceseclipseApplicationJavaMailTestsrccomjavamail"); File[] codeFiles = f.listFiles(); for(File child : codeFiles){ 只统计java文件 if(child.getName().matches(.*.java$")) { parse(child); } } System.out.println(normalLines:" + normalLines); System.commentLines:" + commentLines); System.whiteLines:" + whiteLines); } void parse(File f) { BufferedReader br = null; 表示是不是为注释开始 boolean comment = false; try { br = 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; } ") && line.endsWith(统计1行/**/ commentLines ++; } if (true == comment) { 统计*/ commentLines ++; if(line.endsWith(")) { comment = false; } } //")) { commentLines ++; } else { normalLines ++; } } } catch (IOException e) { e.printStackTrace(); } finally { if(br != try { br.close(); br = null; } catch (IOException e) { e.printStackTrace(); } } } } }
学习Java的同学注意了!!! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |