类字符串java学习笔记06--正则表达式
2013-05-17 22:10
721 查看
本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~
正则表达式可以便利的对数据进行匹配,可以执行更加复杂的字符串验证、拆分、替换等操纵。
例如:当初要去判断一个字符串是否由数字构成,则可以有以下的两种做法
不应用正则表达式
应用正则表达式
Pattern、Matcher类
这两个类为正则的核心操纵类。这两个类都定义在java.util.regex包中.
Pattern类的主要作用是进行正则规范(如之前的“【0-9】”就属于正则规范)的编写,而Matcher类主要是执行规范,验证一个字符串是否符合其规范。
\d:表示数字,【0-9】
\D:表示非数字,【^0-9】
\w:表示字母、数字、下划线,【a-zA-Z0-9】
\W:【^a-zA-Z0-9】
以上的正则,如果要想驱动起来,则必须依托Pattern类和Matcher类
Pattern主要是表示一个规矩的意思,即:正则表达式的规矩需要在Pattern类中应用。
Matcher类主要表示应用Pattern指定好的验证规矩。
在Pattern类中如果要想取得Pattern类实例,则必须调用compile()方法。
例:验证一个字符串是否是正当的日期格式。
每日一道理
盈盈月光,我掬一杯最清的;落落余辉,我拥一缕最暖的;灼灼红叶,我拾一片最热的;萋萋芳草,我摘一束最灿的;漫漫人生,我要采撷世间最重的———毅力。
在Pattern类中也可以应用正则进行字符串的拆分功能。
还可以应用Matcher类中的字符串替换功能。
String类对正则的支撑
从之前的操纵中,可以返现,很多的代码除了要求的字符串不同,应用的正则规矩不同,基本上就没有什么特殊的了。
所以在JDK1.4之后,java对正则进行了一些扩充,在String中开始直接支撑正则的操纵。
总结:
1、应用正则可以便利的完成字符串的验证、拆分、替换等复杂功能。
2、在开发中一般都市直接应用String类中提供好的正则支撑,而常常很少直接应用Pattern类或Matcher类。
3、在一些正则应用的时候,对于一些敏感的字符要进行转义操纵。
文章结束给大家分享下程序员的一些笑话语录:
不会,Intel会维持高利润,也会维持竞争局面,国外的竞争不是打死对方的那种。你看日本有尼康,佳能,索尼,都做相机,大家都过得很滋润。别看一堆厂,其实真正控制的是后面的那几个财团——有些竞争对手,后面其实是一家人。
正则表达式可以便利的对数据进行匹配,可以执行更加复杂的字符串验证、拆分、替换等操纵。
例如:当初要去判断一个字符串是否由数字构成,则可以有以下的两种做法
不应用正则表达式
public class T { public static void main(String[] args) { String str = "0123456789"; boolean flag = true; //定义一个标记变量 char c[] = str.toCharArray(); for (int i = 0; i < c.length; i++) { if(c[i]<'0'||c[i]>'9'){ flag = false; break; } } if(flag){ System.out.println("是全部由数字构成"); }else{ System.out.println("不是全部由数字构成"); } } }
应用正则表达式
public class T { public static void main(String[] args) { String str = "0123456789"; if(Pattern.compile("[0-9]+").matcher(str).matches()){ System.out.println("是全部由数字构成"); }else{ System.out.println("不是全部由数字构成"); } } }
Pattern、Matcher类
这两个类为正则的核心操纵类。这两个类都定义在java.util.regex包中.
Pattern类的主要作用是进行正则规范(如之前的“【0-9】”就属于正则规范)的编写,而Matcher类主要是执行规范,验证一个字符串是否符合其规范。
\d:表示数字,【0-9】
\D:表示非数字,【^0-9】
\w:表示字母、数字、下划线,【a-zA-Z0-9】
\W:【^a-zA-Z0-9】
以上的正则,如果要想驱动起来,则必须依托Pattern类和Matcher类
Pattern主要是表示一个规矩的意思,即:正则表达式的规矩需要在Pattern类中应用。
Matcher类主要表示应用Pattern指定好的验证规矩。
在Pattern类中如果要想取得Pattern类实例,则必须调用compile()方法。
例:验证一个字符串是否是正当的日期格式。
每日一道理
盈盈月光,我掬一杯最清的;落落余辉,我拥一缕最暖的;灼灼红叶,我拾一片最热的;萋萋芳草,我摘一束最灿的;漫漫人生,我要采撷世间最重的———毅力。
public class T { public static void main(String[] args) { String str = "1990-04-13"; String pattern = "\\d{4}-\\d{2}-\\d{2}"; Pattern p = Pattern.compile(pattern); //实例化Pattern类 Matcher m = p.matcher(str); //实例化Matcher类 if(m.matches()){ System.out.println("是正当日期格式"); }else{ System.out.println("不是正当日期格式"); } } }
在Pattern类中也可以应用正则进行字符串的拆分功能。
public class T { public static void main(String[] args) { String str = "AAA000BBB111CCC"; String pattern = "\\d+"; Pattern p = Pattern.compile(pattern); String s[] = p.split(str); for (int i = 0; i < s.length; i++) { System.out.println(s[i]); } } }
还可以应用Matcher类中的字符串替换功能。
public class T { public static void main(String[] args) { String str = "AAA000BBB111CCC"; String pattern = "\\d+"; Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(str); String s = m.replaceAll("---"); System.out.println(s); //AAA---BBB---CCC } }
String类对正则的支撑
从之前的操纵中,可以返现,很多的代码除了要求的字符串不同,应用的正则规矩不同,基本上就没有什么特殊的了。
所以在JDK1.4之后,java对正则进行了一些扩充,在String中开始直接支撑正则的操纵。
public class T { public static void main(String[] args) { String str1 = "AAA000BBB"; String str2 ="1990-04-13"; String str3 = "i_love_you"; System.out.println("字符串替换:"+str1.replaceAll("\\d+", "---")); System.out.println("字符串验证:"+str2.matches("\\d{4}-\\d{2}-\\d{2}")); String s[] = str3.split("_"); System.out.println("字符串拆分:"); for(int i=0;i<s.length;i++){ System.out.println(s[i]); } } }
总结:
1、应用正则可以便利的完成字符串的验证、拆分、替换等复杂功能。
2、在开发中一般都市直接应用String类中提供好的正则支撑,而常常很少直接应用Pattern类或Matcher类。
3、在一些正则应用的时候,对于一些敏感的字符要进行转义操纵。
文章结束给大家分享下程序员的一些笑话语录:
不会,Intel会维持高利润,也会维持竞争局面,国外的竞争不是打死对方的那种。你看日本有尼康,佳能,索尼,都做相机,大家都过得很滋润。别看一堆厂,其实真正控制的是后面的那几个财团——有些竞争对手,后面其实是一家人。
相关文章推荐
- Java学习笔记-字符串、正则表达式(String,regex)
- 2015年03月06日 - Java学习笔记06--正则表达式
- java学习笔记06--正则表达式
- 【原】Java学习笔记023 - 字符串缓冲区_正则表达式
- java学习笔记06--正则表达式
- JAVA学习笔记-字符串和正则表达式
- java学习笔记06--正则表达式
- java学习笔记06--正则表达式
- java学习笔记06--正则表达式
- Java学习笔记06--正则表达式
- 黑马程序员 java学习笔记--正则表达式
- java学习笔记---正则表达式
- Java学习笔记之Pattern类的用法详解(正则表达式)
- Java学习笔记-正则表达式
- java学习笔记001之正则表达式贪婪型、勉强型和占有型p299
- java 从零开始,学习笔记之基础入门<正则表达式>(三十一)
- (26)Java学习笔记——常用对象 / 正则表达式
- 正则表达式学习笔记(4)字符串、行和词边界
- Java基础学习笔记十三 常用API之正则表达式、Date、DateFormat、Calendar
- 【知了堂学习笔记】java中的正则表达式