java基础--正则表达式
java基础--正则表达式
用一种模式去匹配字符文本的公式
底层实现
matchar对象的属性 int[] grougs; grougs数组主要记录匹配到原始字符串的索引值,使用groug方法来获取子字符串,groug(0)代表匹配到的字符串,groug(1)groug(2)...代表正则捕获分组子内容,groug也支持分组命名方式获取,但是前提是你在正则中要命名 (?
相关类
- Pattern
- 没有共有的构造器,通过类静态方法来生成正则表达式对象:compile(Sting Regex)
- Matcher
- 没有公有的构造器,通过Pattern类对象的方法生成匹配器对象:matcher(String context)
应用
-
使用细节可以参考韩老师视频细节
-
java中正则转义符要使用\,一共两个
-
反向引用
主要利用分组、捕获的内容进行反向引用,内部反向引用使用 \\分组号,外部引用使用 $分组号
//匹配两个连续的的相同数字 (\\d)\\1 //匹配5225,1551 (\\d)(\\d)\\2\\1 //处理经典的结巴程序 String context = "我我想想想学学学学Java" context = Pattern.compile("(.)\\1+").matcher(context).replaceAll("$1");
-
String类使用正则
- replaceAll(String regex, String replacement) 替换
- matches(String regex) 判断
- split(String regex) 分割