黑马程序员——正则表达式

来源:互联网 发布:unity3d 语音聊天实现 编辑:程序博客网 时间:2024/05/16 02:31

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------

正则表达式


一些特定字符组成的用来对字符串进行符合匹配的表达式称为正则表达式。这些特殊字符可以参阅Java API文档java.util.regex.Pattern类的描叙。正则表达式功能强大,可以简化对复杂字符串的匹配操作,但是阅读性比较差。


利用正则表达式进行的操作


String类,Pattern类和Macher类都有一些对符合正则表达式的字符串操作方法。


替换

String:boolean replaceFirst(String regex,String replacement);

boolean replaceAll(String regex,String replacement);

Matcher: boolean replaceFirst(CharSequence input)

 boolean replaceAll(CharSequence input)


匹配

String:boolean matches(String regex)

Pattern:static boolean matches(String regex,CharSequence input)

Matcher: boolean matches()


切割

String:split(String regex)

 String[] split(Stirng regex,int limit)

Pattern: String[] split(CharSequence input)

  String[] split(CharSequence input,int limit)

获取

Matcher: String group()

 String group(int group)


//切割String name="zhangsan.lisi.wangwu";          regex="\\.";//在正则中.表示任意字符,所有要转义,正则表达式是字符串形式,\在字符串中是转义符号,所有要再加个\或者写成regex=[.];          name.split(regex);            //按照叠词分割           name="ggdgegregr";          regex="(.)\\1+";          name.split(regex);            //被()括起来形成一个组,“\”+“数字”表示对第几组的结果引用,因为\转义所以要多加一个\//还有一个"$"+“数字”也是对组的引用,但是它不是在正则表达式内引用,而是在表达式外的参数列表上引用它


//将正则表达式封装成Pattern后,与要匹配获取的字符串生成Macher匹配引擎//然后进行匹配并获取 String str = "i am learning Java";          System.out.println(str);          String regex = "\\b[a-z]{4}\\b";    //将正则规则封装成对象。           Pattern p = Pattern.compile(regex);    //生成获取匹配引擎           Matcher m  = p.matcher(str);  //find方法进行符合规则的子串查找   //matches内部有调用find方法,它是个指针,一个个地指向要被匹配字符串//所以在这个地方如果有matches方法,下面的find方法会从matches匹配结束的索引处继续匹配                   while(m.find()){  //group用于获取匹配后结果               System.out.println(m.group());   //start end 返回匹配前后指针的索引位置              System.out.println(m.start()+"...."+m.end());          }  



---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
原创粉丝点击