正则表达式:其实就是用于操作字符串的一个规则,正则表达式的规则使用了特殊的符号表示。
一.预定义字符
注意:任何预定义字符没有加上数量词之前都只能匹配一个字符而已。
System.out.println("任意字符:"+"a".matches("."));
System.out.println("數字字符:"+"12".matches("\\d"));
System.out.println("非數字字符:"+"1".matches("\\D"));
System.out.println("空白字符:"+"\n".matches("\\s"));
System.out.println("非空白字符:"+"a".matches("\\S"));
System.out.println("單詞字符:"+"@".matches("\\w"));
System.out.println("非單詞字符:"+"@".matches("\\W"));
System.out.println("?一次或者一次也没有:"+"2".matches("\\d?"));
System.out.println("*零次或多次:"+"3145435".matches("\\d*"));
System.out.println("+至少出现一次:"+"435342".matches("\\d+"));
System.out.println("{n}恰好出现4次:"+"3245".matches("\\d{4}"));
System.out.println("{n,}至少出现n此:"+"3242".matches("\\d{5,}"));
System.out.println("{n,m}至少n次,但是不超过m次:"+"325".matches("\\d{4,11}"));
范围表示
注意:不管范围有多大,没有数量词的时候只能匹配一个字符
分组()的目的是为了让正则的内容被复用起来,组号是从1开始,不能被指定
((A)(B©))
组号1:(A(B©))
第二组:(A)
第三组:(B©)
第四组:©
\1:引用第一组所匹配到的内容
\2:引用第二组所匹配到的内容
//根據字符串的重疊詞進行切割
private static void testsplit2() {
// TODO Auto-generated method stub
String str = "明天天玩開開開開開開心心的的呢";
//如果正则的内容需要被复用,那么需要对正则的内容进行分组。分组的目的就是为了提高正则的 复用性,组号不能指定,组号是从1开始的
String[] datas = str.split("(.)\\1+");
System.out.println(Arrays.toString(datas));
}
二.正则表达式的主要操作
正则表达式式用于操作字符串的规则,正则表达式对字符串的操作主要有以下几种方式应用
匹配 : matches()
切割split();
替换replaceAll(String regex,String replacement);
为了避免打广告,会用正则删联系方式
邮箱写成 181牛客86牛客148牛客101@牛客qq.com
查找:
Pattern p = new Pattern.compile(“正则”);
Matcher m = p.matcher(“aaaadd”);
boolean b = m.matches();
匹配器要使用到的方法:
1.
find() 通知匹配器去匹配字符串,查找符合规则的字符串,如果能查找到符合规则的字符串,则返回true,否则返回false
2.
group() 获取符合规则的子串。
注意:是使用group方法的时候一定要先调用find的方法让匹配器查找符合规则的字符串,否则报错。
查找需要使用的对象:
1.
Pattern(正则对象)
2.
Matcher(匹配器对象)
//替换1
private static void replacAll() {
String str = "有问题可以联系:18188181885,有问题可以联系:18188181880,有问题可以联系:18188181880";
String reg ="1[34578]\\d{9}";
str = str.replaceAll(reg,"****");
System.out.println("被替换的内容是:"+str);
}
//替换2
private static void replaceTest() {
String str = "aaaaabbbbbbbcccccccddddddddsss";//把重叠词替换成单个单词
str = str.replaceAll("(.)\\1+","$1" ); //
System.out.println("被替换的内容是:"+str);
}
}