正则表达式:Pattern 与Matcher
java.util.regex包是一个用于匹配字符序列与正则表达式指定的类库包。这个包中包含有三个类:Pattern、Matcher和PatternSyntaxException. Pattern:正则表达式经编译后的表现模式 Matcher:一个Matcher对象是一个状态机器,依据Pattern对象作为匹配模式对字符串展开匹配检查。 使用流程: 首先使用Pattern的一个静态方法Complie来创建Pattern对象。 Pattern n=Pattern.Complie(regax); 然后,调用Pattern的方法matcher Matcher m=p.matcher(Candidate); 得到Matcher对象,Matcher对象保存了许多匹配信息,通过find()方法查找匹配的部分,若有,返回TRUE,m.group()可得到匹配的各组值,否则,返回FALSE。
Pattern类的方法: 1、Static Pattern compile(String regex); 将给定的正则表达式编译并赋予给Parrern类; Static Pattern compile(String regex,int flags); 2、int flags(); 返回当前Pattern的匹配flags参数; 3、Matcher matcher(CharSequeue input); 生成一个给定命名的Matcher对象; 4、Static boolean matchers(String regex,CharSequeue intput); 编译给定的正则表达式并且对输入的字符串以该正则表达式为模式展开匹配,该方法适合于该正则表达式只会使用一次的情况,也就是只进行一次匹配工作,因为这种情况下,不需要生成一个Matcher实例。 5、String Pattern(); 返回该Pattern对象所编译的表达式 6、String[] Split(CharSequeue input); 将目标字符串按照Pattern里所包含的正则表达式为模式进行分割。 String[] Split(CharSequeue input,int limit);//limit为指定分割的段数 Matcher类的方法: 1、Matcher appendReplacement(StringBuffer sb,String replacement); 将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里。 2、StringBuffer appendTail(StringBuffer sb); 将最后一次匹配工作后剩余的字符串添加到一个StringBuffer对象里。 3、int end(); 返回当前匹配的子串的最后一个字符串在原目标字符串的索引位置。 int end(int group); 返回与匹配模式里指定的但相匹配的子串最后一个字符的位置。 4、boolean find(); 尝试在目标字符串里查找下一个匹配子串 boolean find(int start); 重设Matcher对象,并且尝试在目标字符串里从指定的位置开始查找下一个匹配的子串。 5、String group(); 返回当前查找而获得的与组匹配的所有子串内容 String group(int group); 返回当前查找而获得的与指定的组匹配的子串内容 int groupCount(); 返回当前查找所获得匹配组的数量。 6、boolean lookingAt(); 检测目标字符串是否以匹配的子串起始 7、boolean matches(); 尝试对整个目标字符串展开匹配检测,也就是对整个目标字符串完全匹配时才返回值。 8、Pttern pattern(); 返回该Matcher对象的现有匹配模式,也就是对应的Pattern对象。 9、String replaceAll(String replacement); 将目标字符串里的所有与既有模式相匹配 的子串替换为指定的字符串 10、String replaceFirst(String repalcement); 只替换第一个。。。。。。。。。。。。。 11、Matcher reset()//重设该Matcher对象 Matcher reset()//重设该Matcher对象,并且制定一个新的目标字符串 12、int start(); 返回当前查找所获子串的开始字符在原目标字符串中的位置。 13、int start(int group); 返回当前查找所获得的和指定组匹配的子串的第一个字符在原目标字符串中的位置。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |