黑马程序员_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>、期待与您交流!
----------------------
----------------------
概念:符合一定规则的表达式。
作用:专门用与操作字符串。
特点:用一些特定的符号来表示一些代码的操作。其实学习正则表达式就是学习一些特殊符号的使用
正则表达式的利弊:
利:可以简化对字符串的复杂操作。
弊:正则表达式定义的符号越多,阅读性越差。
正则表达式的具体操作功能:
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>、期待与您交流!
----------------------
相关文章推荐
- 黑马程序员_java 正则表达式
- 【黑马程序员】 学习笔记 - Java正则表达式
- 黑马程序员——Java正则表达式
- 黑马程序员——Java基础---正则表达式
- 黑马程序员--java--反射和正则表达式
- 黑马程序员-java学习笔记-正则表达式
- 黑马程序员:Java基础总结----正则表达式
- 【黑马程序员】java中-------------正则表达式
- 黑马程序员——Java基础—正则表达式
- 黑马程序员——java语言基础——正则表达式
- 黑马程序员——java基础——正则表达式
- 黑马程序员——java基础——正则表达式
- 『黑马程序员』---java--网络编程--正则表达式
- 黑马程序员——Java基础之反射,正则表达式
- 黑马程序员——Java基础---正则表达式
- 黑马程序员—————Java基础--------正则表达式
- 黑马程序员——Java正则表达式
- 黑马程序员_java高新技术之_正则表达式
- 黑马程序员:Java基础总结----正则表达式
- 黑马程序员java学习—正则表达式