[b][/b]----------- android培训、java培训、java学习型技术博客、期待与您交流! ---------
正则表达式
1:正则表达式
(1)正则表达式:就是符合一定规则的字符串。
(2)规则字符:
(3)常用功能:
a:判断功能
String -- matches()
b:切割功能
String -- split()
c:替换功能
String -- replaceAll()
d:获取功能
Pattern
Matcher
compile()
find()
group()
(4)案例:
1:校验电话号码
public class RegexDemo {
public static void main(String[] args) {
String regex = "1[35]\\d{9}";
Scanner sc =new Scanner(System.in);
System.out.println("请输入你的手机号:");
String phone = sc.nextLine();
boolean flag = phone.matches(regex);
System.out.println(flag);
}
}
2.校验邮箱
public class RegexTest {
public static void main(String[] args) {
String regex = "\\w+@\\w{2,8}(\\.\\w{2,3})+";
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的邮箱:");
String email = sc.nextLine();
boolean flag = email.matches(regex);
System.out.println(flag);
}
}
叠词的规则:
(.)\\1+
3:我要学编程
我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程
将字符串还原成:“我要学编程”。
思路:
A:把点去掉
B:叠词保留一个
public class RegexTest {
public static void main(String[] args) {
String str = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
// 替换
String result = str.replaceAll("\\.", "");
String finalResult = result.replaceAll("(.)\\1+", "$1");
System.out.println(finalResult);
}
}
4:获取文本文件中的邮箱
A:通过字符输入流读取数据。
B:把读取到的每一行数据进行查找。
C:把查找到的数据存储到集合中。
D:遍历集合。
public class RegexTest {
public static void main(String[] args) throws IOException {
// 通过字符输入流读取数据。
BufferedReader br = new BufferedReader(new FileReader("mail.txt"));
// 创建一个集合
ArrayList<String> array = new ArrayList<String>();
// 定义邮箱规则
String regex = "\\w+@\\w{2,8}(\\.\\w{2,3})+";
String line = null;
while ((line = br.readLine()) != null) {
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(line);
while (m.find()) {
array.add(m.group());
}
}
// 遍历集合。
for (String s : array) {
System.out.println(s);
}
}
}
2.要掌握的正则规则
(1):特殊字符
\\:反斜线
\r:回车
\n:换行
(2):字符类
[abc]:a,b或者c的任意一个。
[^abc]:除了a,b,c以外的字符。
[a-zA-Z]:包括了26个英文字母。
[0-9]:包括了0-9这个10个数字字符。
(3):预定义字符类
. 任意字符
\d 数字[0-9]
\D 非数字[^0-9]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
(4):边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
(5):Greedy 数量词
x? 0次或1次
x* 0次或多次
x+ 1次或多次
x{n} 恰好n次
x{n,} 至少n次
x{m,n} 至少m次,但不能超过n次
反射
(1)反射:在程序运行时期,是通过class文件对象,去使用构造方法,成员变量,成员方法。
(2)获取class文件对象
1:Object类的getClass()方法
2:数据类型的静态的class属性
3:Class类forName()静态方法
推荐:开发使用第三种。
(3)反射的应用
1:通过反射获取构造方法并使用
//获取字节码文件对象
Class c = Class.forName("cn.itcast.Person");
//获取构造器对象
Constructor con = c.getDeclearedConstrator(String.class,int.class);
//通过构造器对象获取Person对象
Object obj = con.newInstance("张三",21);
2:通过反射获取成员变量并使用
//获取字节码文件对象
Class c = Class.forName("cn.itcast.Person");
//获取构造器对象
Constructor con = c.getDeclearedConstrator(String.class,int.class);
//通过构造器对象获取Person对象
Object obj = con.newInstance("张三",21);
//获取成员变量
Field field = c.getDeclaredField("name");
field.setAccessiable(true);
field.set(obj,"李四");
3:通过反射获取成员方法并使用
//获取字节码文件对象
Class c = Class.forName("cn.itcast.Person");
//获取构造器对象
Constructor con = c.getDeclearedConstrator(String.class,int.class);
//通过构造器对象获取Person对象
Object obj = con.newInstance("张三",21);
//获取所有公共方法对象,包括从父类继承的
//(获取本类所有方法的时候,不包括从父类继承的)
Method[] methods = c.getDeclaredMethods();
for(Method m : methods){
m.setAccessiable(true);
m.invoke(obj, null);
}
----------- android培训、java培训、java学习型技术博客、期待与您交流! ---------
正则表达式
1:正则表达式
(1)正则表达式:就是符合一定规则的字符串。
(2)规则字符:
(3)常用功能:
a:判断功能
String -- matches()
b:切割功能
String -- split()
c:替换功能
String -- replaceAll()
d:获取功能
Pattern
Matcher
compile()
find()
group()
(4)案例:
1:校验电话号码
public class RegexDemo {
public static void main(String[] args) {
String regex = "1[35]\\d{9}";
Scanner sc =new Scanner(System.in);
System.out.println("请输入你的手机号:");
String phone = sc.nextLine();
boolean flag = phone.matches(regex);
System.out.println(flag);
}
}
2.校验邮箱
public class RegexTest {
public static void main(String[] args) {
String regex = "\\w+@\\w{2,8}(\\.\\w{2,3})+";
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的邮箱:");
String email = sc.nextLine();
boolean flag = email.matches(regex);
System.out.println(flag);
}
}
叠词的规则:
(.)\\1+
3:我要学编程
我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程
将字符串还原成:“我要学编程”。
思路:
A:把点去掉
B:叠词保留一个
public class RegexTest {
public static void main(String[] args) {
String str = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
// 替换
String result = str.replaceAll("\\.", "");
String finalResult = result.replaceAll("(.)\\1+", "$1");
System.out.println(finalResult);
}
}
4:获取文本文件中的邮箱
A:通过字符输入流读取数据。
B:把读取到的每一行数据进行查找。
C:把查找到的数据存储到集合中。
D:遍历集合。
public class RegexTest {
public static void main(String[] args) throws IOException {
// 通过字符输入流读取数据。
BufferedReader br = new BufferedReader(new FileReader("mail.txt"));
// 创建一个集合
ArrayList<String> array = new ArrayList<String>();
// 定义邮箱规则
String regex = "\\w+@\\w{2,8}(\\.\\w{2,3})+";
String line = null;
while ((line = br.readLine()) != null) {
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(line);
while (m.find()) {
array.add(m.group());
}
}
// 遍历集合。
for (String s : array) {
System.out.println(s);
}
}
}
2.要掌握的正则规则
(1):特殊字符
\\:反斜线
\r:回车
\n:换行
(2):字符类
[abc]:a,b或者c的任意一个。
[^abc]:除了a,b,c以外的字符。
[a-zA-Z]:包括了26个英文字母。
[0-9]:包括了0-9这个10个数字字符。
(3):预定义字符类
. 任意字符
\d 数字[0-9]
\D 非数字[^0-9]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
(4):边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
(5):Greedy 数量词
x? 0次或1次
x* 0次或多次
x+ 1次或多次
x{n} 恰好n次
x{n,} 至少n次
x{m,n} 至少m次,但不能超过n次
反射
(1)反射:在程序运行时期,是通过class文件对象,去使用构造方法,成员变量,成员方法。
(2)获取class文件对象
1:Object类的getClass()方法
2:数据类型的静态的class属性
3:Class类forName()静态方法
推荐:开发使用第三种。
(3)反射的应用
1:通过反射获取构造方法并使用
//获取字节码文件对象
Class c = Class.forName("cn.itcast.Person");
//获取构造器对象
Constructor con = c.getDeclearedConstrator(String.class,int.class);
//通过构造器对象获取Person对象
Object obj = con.newInstance("张三",21);
2:通过反射获取成员变量并使用
//获取字节码文件对象
Class c = Class.forName("cn.itcast.Person");
//获取构造器对象
Constructor con = c.getDeclearedConstrator(String.class,int.class);
//通过构造器对象获取Person对象
Object obj = con.newInstance("张三",21);
//获取成员变量
Field field = c.getDeclaredField("name");
field.setAccessiable(true);
field.set(obj,"李四");
3:通过反射获取成员方法并使用
//获取字节码文件对象
Class c = Class.forName("cn.itcast.Person");
//获取构造器对象
Constructor con = c.getDeclearedConstrator(String.class,int.class);
//通过构造器对象获取Person对象
Object obj = con.newInstance("张三",21);
//获取所有公共方法对象,包括从父类继承的
//(获取本类所有方法的时候,不包括从父类继承的)
Method[] methods = c.getDeclaredMethods();
for(Method m : methods){
m.setAccessiable(true);
m.invoke(obj, null);
}
----------- android培训、java培训、java学习型技术博客、期待与您交流! ---------
发表评论
-
日志地址
2015-05-04 20:19 243iteye博客 qq空间 -
黑马程序员_设计模式
2015-05-04 10:55 434----------- android培训、java培训、ja ... -
黑马程序员_IO
2015-05-04 10:53 366----------- android培训、jav ... -
黑马程序员_Map集合
2015-05-03 09:53 422----------- android培训、jav ... -
黑马程序员_Collection集合
2015-05-03 09:49 309----------- android培训、java培训、ja ... -
黑马程序员_异常
2015-05-03 09:38 305----------- android培训、java培训、ja ... -
黑马程序员_常用类库
2015-05-03 09:30 542----------- android培训、java培训、ja ... -
黑马程序员_网络编程
2015-05-03 09:56 481----------- android培训、jav ... -
黑马程序员_多线程
2015-05-02 20:28 351----------- android培训、java培训、ja ... -
黑马程序员_内部类
2015-05-02 20:24 396----------- android培训、java培训、ja ... -
黑马程序员_面向对象(三)
2015-05-02 20:22 358----------- android培训、jav ... -
黑马程序员_面向对象(二)
2015-05-02 20:18 319----------- android培训、jav ... -
黑马程序员_面向对象(一)
2015-05-02 17:55 438------------ android培训、ja ...
相关推荐
Source Insight_正则表达式举例
JavaScript_正则表达式语法.doc
JAVA_正则表达式简介详解
Source Insight_正则表达式(中英翻译)
传智播客_张孝祥_JavaScript7_正则表达式
正则表达式是一种威力无比强大的武器,几乎在所有的程序设计语言里和计算机平台上都可以用它来完成各种复杂的文本处理工作。本书从简单的文本匹配开始,循序渐进地介绍了很多复杂内容,其中包括回溯引用、条件性求值...
正则表达式可以让自己的源码更加的简练易懂,掌握一门好技术可以给自己增添机会的筹码
QTP高级4_正则表达式,吐血整理,适合QTP(UFT)初学者,
java的正则表达式的详细说明,里面有详细的说明和例子,是要学习java正则表达式的好资料。
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...
一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式...
031115_【第11章:Java常用类库】_正则表达式.rar
HTML_JavaScript_正则表达式
js_正则表达式实战JavaScript语言精髓与编程实践js_正则表达式实战JavaScript语言精髓与编程实践
T16.5_正则表达式 java 经典教程 经典教材
北大linux讲义\chap04_正则表达式.pdf
deelx_正则表达式.zip
《学习正则表达式》从正则表达式的基本概念讲起,到编写完整的sed和Perl脚本,再到转换HTML文件,将这种强大的工具解释得清晰透彻。...《学习正则表达式》适合对正则表达式感兴趣的程序员和互联网从业者。
python_正则表达式_应用案例_compile、findall、finditer等
正则表达式,正则表达式,正则表达式 正则表达式 正则表达式 正则表达式 正则表达式 正则表达式 正则表达式