import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
//简单认识正则表达式的概念
/*
p("abc".matches("..."));
p("a8729a".replaceAll("\\d", "-"));
Pattern p = Pattern.compile("[a-z]{3}");
Matcher m = p.matcher("fgh");
p(m.matches());
p("fgha".matches("[a-z]{3}"));
*/
//初步认识. * + ?
/*
p("a".matches("."));
p("aa".matches("aa"));
p("aaaa".matches("a*"));
p("aaaa".matches("a+"));
p("".matches("a*"));
p("aaaa".matches("a?"));
p("".matches("a?"));
p("a".matches("a?"));
p("214523145234532".matches("\\d{3,100}"));
p("192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
p("192".matches("[0-2][0-9][0-9]"));
*/
//范围
/*
p("a".matches("[abc]"));
p("a".matches("[^abc]"));
p("A".matches("[a-zA-Z]"));
p("A".matches("[a-z]|[A-Z]"));
p("A".matches("[a-z[A-Z]]"));
p("R".matches("[A-Z&&[RFG]]"));
*/
//认识\s \w \d \
/*
p(" \n\r\t".matches("\\s{4}"));
p(" ".matches("\\S"));
p("a_8".matches("\\w{3}"));
p("abc888&^%".matches("[a-z]{1,3}\\d+[&^#%]+"));
p("\\".matches("\\\\"));
*/
//POSIX Style
//p("a".matches("\\p{Lower}"));
//boundary
/*
p("hello sir".matches("^h.*"));
p("hello sir".matches(".*ir$"));
p("hello sir".matches("^h[a-z]{1,3}o\\b.*"));
p("hellosir".matches("^h[a-z]{1,3}o\\b.*"));
//whilte lines
p(" \n".matches("^[\\s&&[^\\n]]*\\n$"));
p("aaa 8888c".matches(".*\\d{4}."));
p("aaa 8888c".matches(".*\\b\\d{4}."));
p("aaa8888c".matches(".*\\d{4}."));
p("aaa8888c".matches(".*\\b\\d{4}."));
*/
//email
//p("asdfasdfsafsf@dsdfsdf.com".matches("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+"));
//matches find lookingAt
/*
Pattern p = Pattern.compile("\\d{3,5}");
String s = "123-34345-234-00";
Matcher m = p.matcher(s);
p(m.matches());
m.reset();
p(m.find());
p(m.start() + "-" + m.end());
p(m.find());
p(m.start() + "-" + m.end());
p(m.find());
p(m.start() + "-" + m.end());
p(m.find());
//p(m.start() + "-" + m.end());
p(m.lookingAt());
p(m.lookingAt());
p(m.lookingAt());
p(m.lookingAt());
*/
//replacement
/*
Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf");
StringBuffer buf = new StringBuffer();
int i=0;
while(m.find()) {
i++;
if(i%2 == 0) {
m.appendReplacement(buf, "java");
} else {
m.appendReplacement(buf, "JAVA");
}
}
m.appendTail(buf);
p(buf);
*/
//group
/*
Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");
String s = "123aa-34345bb-234cc-00";
Matcher m = p.matcher(s);
while(m.find()) {
p(m.group());
}
*/
//qulifiers
/*
Pattern p = Pattern.compile(".{3,10}+[0-9]");
String s = "aaaa5bbbb68";
Matcher m = p.matcher(s);
if(m.find())
p(m.start() + "-" + m.end());
else
p("not match!");
*/
//non-capturing groups
/*
Pattern p = Pattern.compile(".{3}(?=a)");
String s = "444a66b";
Matcher m = p.matcher(s);
while(m.find()) {
p(m.group());
}
*/
//back refenrences
/*
Pattern p = Pattern.compile("(\\d(\\d))\\2");
String s = "122";
Matcher m = p.matcher(s);
p(m.matches());
*/
//flags的简写
//Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
p("Java".matches("(?i)(java)"));
}
public static void p(Object o) {
System.out.println(o);
}
}
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("D:\\share\\courseware\\1043633.html"));
String line = "";
while((line=br.readLine()) != null) {
parse(line);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
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());
}
}
}
分享到:
相关推荐
Java Application与Java Applet的区别详解 一、概念解析 Java Application和Java Applet是Java编程中的两种主要程序类型,它们各自拥有独特的特性和用途。Java Application是一种独立运行的应用程序,而Java ...
### Java Application与Java Applet的区别 #### 一、概述 Java是一种广泛使用的编程语言,它以其平台无关性和安全性而著称。在Java中,有两种主要的应用类型:Java Application(Java应用程序)和Java Applet...
### JavaApplet与JavaApplication详解 #### 一、Java Application(应用程序) ##### 1.1 编写Java Application Java Application 类似于使用其他编程语言(如VB、VC)编写的桌面应用程序,通常以控制台方式运行...
### Java Application:Java程序设计 Java是一种广泛使用的面向对象的编程语言,以其平台独立性、强大的类库支持和安全特性而闻名。Java应用程序可以运行在任何支持Java虚拟机(JVM)的平台上,这使得Java成为开发...
在Java编程语言中,我们可以利用不同的执行环境来创建不同类型的应用,比如Java Application和Applet。这两种方式都是基于Java平台,但它们的运行机制和应用场景有所不同。本篇文章将深入探讨如何用Java Application...
JavaApplication1_1.rar是一个压缩包文件,其中包含了一个名为"JavaApplication1_1"的项目或应用程序。根据描述,这个项目建议使用NetBeans 8.2集成开发环境(IDE)来打开和编辑。NetBeans是一款流行的开源IDE,特别...
【JavaApplication17.zip_javaApplication】是一个包含Java应用程序源代码的压缩文件,主要涉及Java编程语言,特别是关于创建一个简单的记事本应用。这个压缩包里可能包含了项目的配置文件、源代码文件以及元数据...
Java Application Service,通常简称为Java应用服务框架,是Java开发中的一个重要概念,它为构建企业级应用程序提供了一种结构化和模块化的开发方式。这样的框架能够帮助开发者更高效地管理和组织代码,提高软件的可...
【Java Application编程】是Java编程中的基础部分,主要用于创建独立运行的桌面应用程序。在这个领域,开发者需要掌握如何在没有图形用户界面(GUI)的情况下通过控制台接收用户输入并输出结果。 1. **JDK(Java ...
JavaApplication8是一个典型的Java应用程序,通常指的是一个包含主类(Main class)的Java项目,用于构建用户界面或执行特定功能。在Java编程中,"JavaApplication8"可能是指第八个练习或者示例程序,用于教学或实践...
Java Application-J2SE实例基础程序是Java编程领域中的核心部分,主要关注于桌面应用程序的开发。J2SE,即Java 2 Platform, Standard Edition,是Java平台的标准版,提供了开发和运行桌面应用、服务器端应用以及网络...
Java Application 实现的在线聊天类是一种基于Java编程语言构建的实时通信系统,它允许用户通过网络进行文字、语音甚至视频的交互。这类应用通常涉及到网络编程、多线程、Socket编程以及用户界面设计等多个核心知识...
下面我们将详细探讨如何编写一个接收用户输入字符并将其打印在屏幕上的Java Application。 首先,我们需要了解Java的基本输入输出(I/O)系统。在这个例子中,我们使用了`java.io`包中的`System.in`来获取标准输入...
标题中的"JavaApplication4.java.zip_Free!"表明这是一个包含Java源代码的压缩文件,名字叫做"JavaApplication4.java",并且是免费提供的。描述中的"過橋遊戲編碼的JAVA SCRIPT , FREE"暗示这个Java程序可能实现了一...
java applet 与 Java application的区别.mm 使用freemind打开
标题“JavaApplication3.rar_Again Again”暗示了这是一个与Java应用程序相关的压缩文件,可能是一个包含源代码、编译后的类文件或相关资源的项目。"Again Again"在描述中重复出现,可能意味着这是对之前某个项目的...
JavaApplication4是一款基于Java编程语言开发的简单游戏,属于经典的砖块打碎游戏类型。这种类型的游戏通常由玩家控制一个可移动的挡板,通过反射原理来击打屏幕上方下落的球,使得球能够碰撞并消除屏幕上的砖块。在...
对学习Application有帮助哦~可以参考一下变成思路
**java应用程序类加载器(ClassLoader for java Application)**: 当我们创建一个Java应用程序时,比如通过`java MainClass`命令启动,实际上是由应用程序类加载器来执行的。它查找并加载包含主类(Main-Class ...
在Windows环境下,将Java Application与C++动态链接库(DLL)集成是一种常见的跨语言交互方式。这种方式使得Java程序能够利用C++代码的高效性能和特定功能,比如访问硬件、使用图形处理库等。本文将详细讲解如何实现...