------- android培训、java培训、期待与您交流! ----------
概念:符合一定规则的表达式。
作用:专门用与操作字符串。
特点:用一些特定的符号来表示一些代码的操作。其实学习正则表达式就是学习一些特殊符号的使用
正则表达式的利弊:
利:可以简化对字符串的复杂操作。
弊:正则表达式定义的符号越多,阅读性越差。
正则表达式的具体操作功能:
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());
}
}