第一部分 基础知识篇
概念:
正则表达式:符合一定规则的表达式
作用:对字符串进行操作,学习正则表达式就是学习一些特殊字符的使用
好处:可简化对字符串的操作
第二部分 具体操作功能
匹配:
String matches方法:用规则匹配字符串,只要有一出不符合就匹配结束,返回false
[abc]代表某一位置上是否出现abc
example:
String s =“a”;
String reg1 = “[abc]”
String reg2 = “[a z]”
String reg3 = “[^abc]”
boolean b1 = a.matches(reg1);//判断是否存在abc中的一个,并且只有一个字符
boolean b2 = a.matches(reg2);//判断是否存在a到z中的一个,并且只有一个字符
boolean b3 = a.matches(reg3);//不允许出现abc中的任何一个字符
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
切割:
String split();
example:
String str = "haha,heihei,xixi,hehe";
String reg = ",";
String [ ] arr = str.split(reg);
for(String s : arr)
{
System.out.println(s);
}
主要:一些特殊的符号不能用来作为切割符,例如 .(点)
使用的时候 \.代表正则表达的点 \\.才可以用做.(点)来切割
替换:
String replaceAll( )
example:
public class demo
public static void replace(String str,String reg,String newstr )
{
str = str.replaceAll(reg,newstr);
System.out.println(str);
}
public static void main(String [ ] arg)
{
String str = "asdf2323fsad345gdg3454dsgag35asg"
//只要存在连续5个字符,则替换成#
replaceAll(str,"\\d[5, ]","#");
}
}
获取:将字符串中符合要求的子串获取
操作步骤:
将正则表达式封装成一个对象
将对象与字符串关联
获取正则匹配引擎
通过引擎对符合要求的子串操作 比如取出
example:
import java.util.regex*
class demo
{
public static void main()
{
getdemo();
}
public static void getdemo()
{
String str = "nice to meet you java"
//创建规则
String reg=\\b[a z]{3}\\b;
//将规则封装成对象
Pattern p = Pattern.compile(reg);
//将正则对象与要作用的字符串相关联,获取匹配器对象
Mather m = p.matcher(str);
//将规则作用到字符串上,循环
while(m.find)
{
//打印匹配后的结果
System.out.println(m.grop)
//打印开始角标与结束角标
System.out.println(m.start()+":"+"m.end()")
}
}
}
第三部分:总结
正则表达式极大的简化了对字符串的操作,字符串的匹配,获取等一些经常需要用到的操作,如果用String操作非常麻烦且容易出错,出现正则表达式则避免这一类问题