您的位置:首页 > 职场人生

黑马程序员_java正则表达式

2013-06-12 12:19 260 查看
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! 
----------------------

概念:符合一定规则的表达式。

作用:专门用与操作字符串。

特点:用一些特定的符号来表示一些代码的操作。其实学习正则表达式就是学习一些特殊符号的使用

正则表达式的利弊:

利:可以简化对字符串的复杂操作。

弊:正则表达式定义的符号越多,阅读性越差。

 

正则表达式的具体操作功能:

1.  匹配

匹配使用的是:String类中的matches(String regex)方法

使用规则匹配正个字符串,只要有一出不符合规则,则匹配结束,返回false

例:QQ的校验  第一位不是0并且位数在6-11之间

public
static void
checkQQ()
{
    String qq = "xxxxxxxxx";
    String regex = "[1-9]\\d{6,11};
    booleanflag=qq.matches(regex);

}
如果不使用正则表达式则要使用String类中的方法进行组合判断

①  对该字符串的长度进行判断,

②  用startWith()方法来判断首位是否为0。

③  判断每个位置上是否是0-9之间的数字时需要将字符串转换成字符数组,进而判断数组中的每个元素是否在0-9之间。

运用String类中的方法校验时,代码复杂。

2.  切割 String split()方法

将字符串按照其中的某种字符或者字符串进行切割

例:将字符串按照叠词切割

public
static void
splitMethod()
{
    String string="hellosleepfollowbook";
    String regex="(.)\\1+";
    String[]arr=string.split(regex);
    for(String sting : arr)
{
}
}
3.  替换

StringreplaceAll(regex,string);

如果在regex中定义了组,可以在第二参数中通过$符号来获取正则表达式中已经存在的组。

例:按照叠词切割后,将叠词字符换成单个字符

public
static void
rplaceAllMethod()
{
    String string="hellosleepfollowbook";
        String regex="(.)\\1+";//()用来封装成组,\n(n是组的编号)
String newString="$1";
    string=string.replaceAll(regex,newString);
}
4.  获取:将字符串中符合规则的子串取出

操作步骤:

①  将正则表达式封装成对象

②  将正则对象与要操作的字符串关联

③  获取正则匹配引擎

④  通过引擎对符合规则的子串进行操作

public
static void
getMethod()
{
String string = " ";
    String regex = " ";
   //将规则封装成对象
    Pattern pattern=pattern.compile(regex);
   //将正则对象与字符串关联,获取匹配器对象。
    Matcher matcher=pattern.matcher(string);
            while(matcher.find())
   {
          System.out.println(matcher.group());
    }
}

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流!

----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: