正则表达式
java.util.regex正则的包 + 常用的正则规则
- Pattern类和Matcher类。首先使用Pattern.compile(regex)编译正则,返回一个Pattern对象,然后可以使用matcher(input)对输入串进行匹配,返回Matcher对象。Matcher包含了对匹配情况的各种操作
- Pattern包含了一个static boolean matchers(regex, input)方法,判断输入串和正则是否完全匹配。Pattern还可以使用spilt方法进行分割。
Matcher中的常用方法
方法 应用 matches() 判断是不是完全匹配 lookingAt() 判断是不是开头可以匹配 find() 向前判断匹配位置。可以传入一个整数,代表字符串中字符的位置 start() 匹配的起始位置 end() 最后一个索引+1 spilt() 通过匹配进行分割,可以传入一个数字,指定分割的数量 组(Groups),用括号划分的正则,整体是第0组,第一对被括起来的是第一组,一次类推。groupCount()返回模式中的分组数目。第0组不包括在内。group()返回匹配操作中的第0组。group(i)返回指定组号的匹配
Pattern标记。指定匹配的格式,例如(?i)大小写不敏感、 (?x)忽略空格、 (?s).可以匹配所有字符、 (?m)多行下^$匹配一行的开始和结尾
- compile(regex)。regex开头可以指定一个编译标记
- compile(regex, int flag)指定一个标记
替换操作。
- String中replaceFirst(regex, replacement)替换第一个正则匹配的串。
- String中replaceAll(regex, replacement)替换所有匹配的串。
- Matcher中appendRepalcement(StringBuffer, String replacement)用buffer保存所有匹配+替换后的结果。
- appendTail(buffer)将剩余未处理的部分加入buffer
- reset将Matcher重新匹配一个字符串
在java中对反斜线的解释:\\代表一个在正则中的斜线,也就是说\d表示一个数字,在java的正则中需要使用\\d,但是换行、制表符之类的不需要,例如\n \t