目录
正则表达式语法
\: 转义符
^ 以什么开头
$ 以什么结尾
* 有0个或者多个。
+:有1个或者多个。
? :有0个或者1个
[0-9] 0到9的范围数字
[a-z]a到z的范围
[A-Z] A到Z的范围
[^0-9] 取反,非0-9
{n} 匹配出现n次
{n, } 匹配n次以及n次以上
{n,m} 匹配N-M次
() 分组 [] 范围 { }次数
. 任意字符
简介写法
\d 表示匹配一个数字字符 等价于[0-9]
\D 匹配一个非数字字符。等价于[^0-9]。
\s匹配不可见字符
\S 匹配可见的字符
\w 匹配 包括下划线在内的任意单词等价于[a-zA-Z0-9_u4e00-u9fa5]
\W匹配非单词的
1.
匹配整数和小数
String cc="\\d+(\\.\\d+)?";
//正整数
String positiveInteger="[1-9][0-9]*";
//整数
String integer="(-?[1-9][0-9]*)|0";
正则封装类
Pattern
验证 matches 穿进去一个正则
Pattern的方式
boolean matches Pattern.matches(regex:"(-?[1-9][0-9]*)10",ss);
String的方式
boolean matches1 ss.matches(regex:"(-?[1-9][0-9]*)10");
分割
分割
Pattern的方式
Pattern pattern=Pattern.compile(",")
String[]split pattern.split(ss);
for (String eve:split){
System.out.println(eve);
}
String的方式
String[]split1 ss.split(regex:"")
for (string eve:split1)
System.out.println(eve);
替换
替换
ss.replaceAll(regex:"1",replacement:"2");
Matcher类
匹配分为全词匹配和非全瓷匹配和以正则表达式代表的字符式开头
public class Matcher_01 {
public static void main(String[] args) {
String regex = "((.{2,3})的电话是)(\\d{3})(\\d{4})(\\d{4})";
String number = "张三的电话是13633216508李四的电话是13633216507";
//创建Pattern 对象 将正则传进去
Pattern pattern = Pattern.compile(regex);
// 创建Matcher .matcher方法将字符串穿进去
Matcher matcher = pattern.matcher(number);
//全词查找
// System.out.println(matcher.matches());
// //非全词查找
// System.out.println(matcher.find());
//提取 的循环
while ( matcher.find()){
System.out.println(matcher .group(1)+matcher.group(3)+"****"+ matcher.group(5));
}
}
}
提取
find和group 一起使用就是提取
//提取 的循环
while ( matcher.find()){
System.out.println(matcher .group(1)+matcher.group(3)+"****"+ matcher.group(5));
}
去重
public static void main(String[] args) {
String input="我我我我我我我......要要要要要要要要要要要要要.......学学学学学学学学学学学学学学学学学...编编编编编编编编编编5223232程程程程程程程程程程程程";
String regex="(.)(\\1+)";
//文字处理
input= input.replaceAll("[^\\u4e00-\\u9fa5]","");
// System.out.println(input);
Pattern compile = Pattern.compile(regex);
Matcher matcher = compile.matcher(input);
// while (matcher.find()){
// System.out.println(matcher.group(1));
// }
while (matcher.find()) {
input= input.replaceAll(matcher.group(0), matcher.group(1));
}
System.out.println(input+"!!");
}
}