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

黑马程序员------java学习笔记之正则表达式

2013-06-18 09:27 477 查看
[b][b][b]------- android培训java培训、期待与您交流!
----------
[/b][/b][/b]

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

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

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

正则表达式的利弊:

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

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



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

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