Java常用类库——正则表达式.doc_第1页
Java常用类库——正则表达式.doc_第2页
Java常用类库——正则表达式.doc_第3页
Java常用类库——正则表达式.doc_第4页
Java常用类库——正则表达式.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java常用类库正则表达式分类:Java编程2011-08-23 09:46255人阅读评论(-1)收藏举报为什么要有正则正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证、拆分、替换功能。例如:现在要求判断一个字符串是否由数字组成,则可以有以下两种做法:1.不使用正则完成2.使用正则完成1.以验证字符串是否由数字组成为例:javaview plaincopy1. publicclassRegexDemo012. publicstaticvoidmain(Stringargs)3. Stringstr=1234567890;/此字符串由数字组成4. booleanflag=true;/定义一个标记变量5. /要先将字符串拆分成字符数组,之后依次判断6. charc=str.toCharArray();/将字符串变为字符数组7. for(inti=0;ic.length;i+)/循环依次判断8. if(ci9)/如果满足条件,则表示不是数字9. flag=false;/做个标记10. break;/程序不再向下继续执行11. 12. 13. if(flag)14. System.out.println(是由数字组成!);15. else16. System.out.println(不是由数字组成!);17. 18. 19. ;基本思路:就是将字符串拆分,之后一个个的进行比较的验证,但是这样比较麻烦,而且现在只是验证是否由数字组成,如果更加复杂的呢?此时,如果将代码换成正则表达式,再观察效果:2:认识正则javaview plaincopy1. importjava.util.regex.Pattern;2. publicclassRegexDemo023. publicstaticvoidmain(Stringargs)4. Stringstr=1234567890;/此字符串由数字组成5. if(Ppile(0-9+).matcher(str).matches()/使用正则6. System.out.println(是由数字组成!);7. else8. System.out.println(不是由数字组成!);9. 10. 11. ;以上的代码也完成了字符串的验证功能,可以发现,使用此种验证方法比之前的操作代码更加简单。3.Pattern、Matcher 类这两个类为正则的核心操作类。d:表示数字,0-9D:表示非数字,0-9w:表示字母、数字、下划线,a-zA-Z0-9W:a-zA-Z0-9以上的正则,如果要想驱动起来,则必须依靠Pattern 类和Matcher 类。Pattern 主要表示一个规则的意思,即:正则表达式的规则需要Pattern 类中使用。Matcher 类主要表示使用Pattern 指定好的验证规则。本类 中没有明确的构造方法可以供用户使用,那么则肯定上类的构造方法被私有化了,则可以直接从Pattern 类中取得本类的实例。指定好操作的正则: public staticPatterncompile(Stringregex)可以为matcher 类实例化: publicMatchermatcher(CharSequenceinput)拆分: publicString split(CharSequenceinput)回顾:String 中也存在拆分操作。进行字符串的验证: public boolean matches()字符串替换: public String replaceAll(String replacement)与String 中相同。javaview plaincopy1. importjava.util.regex.Pattern;2. importjava.util.regex.Matcher;3. publicclassRegexDemo034. publicstaticvoidmain(Stringargs)5. Stringstr=1983-07-27;/指定好一个日期格式的字符串6. Stringpat=d4-d2-d2;/指定好正则表达式7. Patternp=Ppile(pat);/实例化Pattern类8. Matcherm=p.matcher(str);/实例化Matcher类9. if(m.matches()/进行验证的匹配,使用正则10. System.out.println(日期格式合法!);11. else12. System.out.println(日期格式不合法!);13. 14. 15. ;读者可以自行使用以下的方式:不使用正则验证。在attern 类中也可以使用正则进行字符串的拆分功能。javaview plaincopy1. importjava.util.regex.Pattern;2. importjava.util.regex.Matcher;3. publicclassRegexDemo044. publicstaticvoidmain(Stringargs)5. /要求将里面的字符取出,也就是说按照数字拆分6. Stringstr=A1B22C333D4444E55555F;/指定好一个字符串7. Stringpat=d+;/指定好正则表达式8. Patternp=Ppile(pat);/实例化Pattern类9. Strings=p.split(str);/执行拆分操作10. for(intx=0;xs.length;x+)11. System.out.print(sx+t);12. 13. 14. ;还可以使用Matcher 类中的字符串替换功能。范例:将字符串中的全部数字替换成 “_”javaview plaincopy1. importjava.util.regex.Pattern;2. importjava.util.regex.Matcher;3. publicclassRegexDemo054. publicstaticvoidmain(Stringargs)5. /要求将里面的字符取出,也就是说按照数字拆分6. Stringstr=A1B22C333D4444E55555F;/指定好一个字符串7. Stringpat=d+;/指定好正则表达式8. Patternp=Ppile(pat);/实例化Pattern类9. Matcherm=p.matcher(str);/实例化Matcher类的对象10. StringnewString=m.replaceAll(_);11. System.out.println(newString);12. 13. ;只要使用正则的验证的规则,那么就可以匹配各种复杂的字符串。4.String 类对正正则的支持从之前的操作中,可以发现,很多的代码除了要求的字符串不同,使用正则规则不同,基本就没什么特别的了。所以在JDK1.4之后,Java 对正则进行了一些扩充,在String 中开始直接支持正则的操作。javaview plaincopy1. importjava.util.regex.Pattern;2. importjava.util.regex.Matcher;3. publicclassRegexDemo064. publicstaticvoidmain(Stringargs)5. Stringstr1=A1B22C333D4444E55555F.replaceAll(d+,_);6. booleantemp=1983-07-27.matches(d4-d2-d2);7. Strings=A1B22C333D4444E55555F.split(d+);8. System.out.println(字符串替换操作:+str1);9. System.out.println(字符串验证:+temp);10. System.out.print(字符串的拆分:);11. for(intx=0;x989. MLDN-9010. LI-10011. */12. Strings=info.split(|);13. System.out.println(字符串的拆分:);14. for(intx=0;xs.length;x+)15. Strings2=sx.split(:);16. System.out.println(s20+t+s21);17. 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论