------- android培训、java培训、期待与您交流! ----------
一、概述
1、简介
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。就是用事先定义好的特定字符,组成一个规定“字符串”,这个规则字符串表达字符串的一种过滤逻辑。
2、目的
- 给定字符串是否匹配正则表达式
- 可以通过正则表达式,获取字符串中特定的部分。
3、特点
- 灵活性、功能性和逻辑性非常强
- 可以用及简单的方法达到对字符串的控制
- 正则越长,阅读性越差
二、构造摘要
1、字符
2、字符类
3、预定义字符类
4、边界匹配器
5、Greedy数量词
6、组合捕获
捕获组可以通过从左到右的开括号来编号。组零始终代表整个表达式。
- ((A)(B(C)))
- \A
- (B(C))
- (C)
之所以这样命名捕获组是因为在匹配中,保存了与这些组匹配的数组序列的子序列,捕获的子序列可以通过Back引用在表达式中使用,也可以在匹配操作完成后从匹配器获取。
三、正则表达式的常用方法
四、正则表达式的使用
1、匹配
class Regex{
public void main(String[] args){
String phone = "13552879076";
String regex = "1[3578]\\d{9}";
System.out.println(phone.matches(regex));
}
}
2、切割
class Regex{
public void main(String[] args){
String ip = "192.168.0.1";
String regex = "\\.";
String[] buf = ip.split(regex);
for(String str:buf){
System.out.println(str);
}
}
}
3、替换
class Regex{
public void main(String[] args){
String str = "aaaadagaabbbbjdkbbbeewethhsfdeee";
String regex = "(.)\\1+";
str.replaceAll(regex,"$1");
System.out.println(str);
}
}
4、获取
class Regex{
public void main(String[] args){
String str = "ming tian jiu yao fang jia le ";
String regex = "\\b[a-z]{4}\\b";
Pattern p = Pattern.compile(regex);
Matcher matcher = p.matcher(str);
while(matcher.find()){
System.out.println(matcher.group());
}
}
}