Java正则表达式的使用.docx_第1页
Java正则表达式的使用.docx_第2页
Java正则表达式的使用.docx_第3页
Java正则表达式的使用.docx_第4页
Java正则表达式的使用.docx_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

目标:l 掌握正则表达式的作用l 掌握正则表达式的匹配模式l 掌握Pattern类和Matcher类的使用l 掌握String类对正则的支持为什么要有正则u 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证、拆分、替换功能。u 例如:现在要求判断一个字符串是否由数字组成,这可以有两种做法 不使用正则完成 使用正则完成以验证字符串是否由数字组成为例:public class RegexDemo01public static void main(String args)String str = 1234567890 ;/ 此字符串由数字组成boolean flag = true ;/ 定义一个标记变量/ 要先将字符串拆分成字符数组,之后依次判断char c = str.toCharArray() ;/ 将字符串变为字符数组for(int i=0;ic.length;i+)/ 循环依次判断if(ci9)/ 如果满足条件,则表示不是数字flag = false ;/ 做个标记break ;/ 程序不再向下继续执行if(flag)System.out.println(是由数字组成!) ;elseSystem.out.println(不是由数字组成!) ;基本思路是,将字符串转换成字符数组在一一进行比较,如果没有出现非数字字符,则其是由数字组成。一、认识正则表达式换成正则表达式则如下:import java.util.regex.Pattern ;public class RegexDemo02public static void main(String args)String str = 1234567890 ;/ 此字符串由数字组成if(Ppile(0-9+).matcher(str).matches()/ 使用正则System.out.println(是由数字组成!) ;elseSystem.out.println(不是由数字组成!) ;以上代码也完成字符串的验证功能,可以发现使用此种验方法比之前直接用String方法跟简单二、Pattern、Matcher类这两个类为正则的核心操作类,如果想要在程序中应用正则表达式则必须依靠Pattern类与Matcher类,这两个类都在java.util.regex包中定义。Pattern类的主要作用是进行正则规范(如之前的“0-9”就是属于正则规范)的编写,而Matcher类主要是执行规范,验证一个字符串是否合其规范。l 常用的正则规则规范描述规范描述表示反斜线t表示制表符/n表示换行abc字符a,b或c,还有如rtg、bnd等abc除了a,b,c以外的任意字符表示非a-zA-Z0-9表示由字母、数字组成d表示数字,相当于0-9D表示非数字,相当于0-9w表示字母、数字、下划线W表示字母、数字、下划线s表示所有空白字符(换行、空格等)S表示所有非空白字符行的开头$ 行的结尾.匹配除了换行符之外的任意字符数量表示(X表示一组规范)规范描述规范描述X必须出现一次X?可以出现0次或1次X*可以出现0次,1次或多次X+可以出现1次或多次Xn必须出现n次Xn,必须出现n次以上Xn,m必须出现nm次逻辑运算符(X、Y表示一组规范)规范描述规范描述XYX规范后跟着Y规范X|YX规范或Y规范(X)作为一个捕获组规范以上正则,如果想要驱动起来,则必须依靠Pattern类和Matcher类。Pattern主要是表示一个规则的意思,即:正则表达式的规则需要在Pattern类中使用Matcher来主要表示使用Pattern指定好的验证规则Pattern类的常用方法有:Matcher类的常用方法有:字符串验证的步骤:1. Pattern类中没有构造方法,说明构造方法被私用话,需要从Pattern本身中的compile(String regex)中实例化Pattern对象,如:Pattern p=Ppile(0-9+);2.Matcher类可以通过Pattern类的matcher(CharSequence input)进行实例化,指定要进行验证的字符串如:Matcher M=p.matcher(123456777ldjfl);3.使用Matcher类中的public boolean matches()执行验证boolean flag=M.matches();或使用Matcher类中的public String replaceAll(String replacement)方法进行替换操作M.replace(_); /将数字替换成下划线范例一:实现代码如下:import java.util.regex.Pattern ;import java.util.regex.Matcher ;public class RegexDemo03public static void main(String args)String str = 1983-07-27 ;/ 指定好一个日期格式的字符串String pat = d4-d2-d2 ;/ 指定好正则表达式Pattern p = Ppile(pat) ;/ 实例化Pattern类Matcher m = p.matcher(str) ;/ 实例化Matcher类if(m.matches()/ 进行验证的匹配,使用正则System.out.println(日期格式合法!) ;elseSystem.out.println(日期格式不合法!) ;Pattern类也可以对字符串进行拆分,其方法为public String split(CharSequence input)如下范例:import java.util.regex.Pattern ;import java.util.regex.Matcher ;public class RegexDemo04public static void main(String args)/ 要求将里面的字符取出,也就是说按照数字拆分String str = A1B22C333D4444E55555F ;/ 指定好一个字符串String pat = d+ ;/ 指定好正则表达式Pattern p = Ppile(pat) ;/ 实例化Pattern类String s = p.split(str) ;/ 执行拆分操作for(int x=0;xs.length;x+)System.out.print(sx + t) ;三、String类对正则的支持从之前电热操作中,可以发现,很多的代码除了要求的字符串不同,使用正则规则不同,基本上就没有什么特别的了。所以在jdk1.4之后,java对正则进行了一些扩充,在String中开始支持正则的操作。范例:字符串的替换,匹配,拆分操作import java.util.regex.Pattern ;import java.util.regex.Matcher ;public class RegexDemo06public static void main(String args) String str1 = 字符串替换字字字.replaceAll(字,_) ; /中文字符替换boolean temp = 1983-07-27.matches(d4-d2-d2) ;String s = A1B22C333D4444E55555F.split(d+) ;System.out.println(字符串替换操作: + str1) ;System.out.println(字符串验证: + temp) ;System.out.print(字符串的拆分:) ;for(int x=0;x98MLDN-90LI-100*/String s = info.split(|) ;System.out.println(字符串的拆分:) ;for(int x=0;xs.length;x+)String s2 = sx.split(:) ;System.out.println(s20 + t

温馨提示

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

评论

0/150

提交评论