浅谈Java中关于正则的使用

来源:互联网 发布:虚拟立铣编程 编辑:程序博客网 时间:2024/06/14 00:11

  研究了一下javaAPI文档,在此对正则的使用做些总结说明。

import java.util.regex.Matcher;import java.util.regex.Pattern;public class Demo {public static void main(String[] args) { Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); if(m.matches()) { System.out.println(m.group()); }}}
  这段代码实现的功能是:用编好的正则模式来匹配给定的目标字符串,如果检测匹配成功就返回在目标字符串中匹配的字符序列。

  用到的方法有:

  pattern类中的compile方法、matcher方法以及matches方法

static Patterncompile(String regex) 将给定的正则表达式编译到模式中。
Matchermatcher(CharSequence input) 创建匹配给定输入与此模式的匹配器。
static booleanmatches(String regex, CharSequence input) 编译给定正则表达式并尝试将给定输入与其匹配。

  matcher类中的group方法

 Stringgroup() 返回由以前匹配所匹配的输入子序列。
  所以上面的这段代码运行结果为:

aaaaab
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Demo {public static void main(String[] args) { Pattern p = Pattern.compile("\\d{3,5}"); Matcher m = p.matcher("123-23245-21-456544849846"); if(m.find()) { System.out.println(m.group()+"\t"+m.start()+"-"+m.end()); } if(m.find()) { System.out.println(m.group()+"\t"+m.start()+"-"+m.end()); } if(m.find()) { System.out.println(m.group()+"\t"+m.start()+"-"+m.end()); } if(m.find()) { System.out.println(m.group()+"\t"+m.start()+"-"+m.end()); } m.reset(); if(m.find()) { System.out.println(m.group()+"\t"+m.start()+"-"+m.end()); }}}
  这里又用到的方法有:

  matcher类中的find方法、reset方法、start方法和end方法

 boolean  find()  尝试查找与该模式匹配的输入序列的下一个子序列。
Matcherreset() 重置匹配器。
int  start() 返回以前匹配的初始索引。
int  end() 返回最后匹配字符之后的偏移量。
   这个程序的运行结果为:

1230-3232454-94565413-184849818-231230-3

注意:通过上述例子可以看到,每次使用find()方法匹配时都会将原字符串进行截取操作,也就是原字符串长度减小。

import java.util.regex.Matcher;import java.util.regex.Pattern;public class Demo {public static void main(String[] args) { String str="123-23245-21-4565448"; Pattern p = Pattern.compile("((\\d*)-)*\\d*"); Matcher m = p.matcher(str); System.out.println(m.matches()); String[] strs=str.split("-"); for(int i=0;i<strs.length;i++) { System.out.println(strs[i]); }}}
  这里用到了spilt方法来按指定正则分割匹配字符串。

 String[]  split(CharSequence input) 围绕此模式的匹配拆分给定输入序列。
  这个程序的运行结果如下:

true12323245214565448

















  

原创粉丝点击