Pattern
CASE_INSENSITIVE 忽略大小写 MULTILINE 多行模式 DOTALL dotAll 模式 UNICODE_CASE unicode模式
compile(regex) 使用正则构建 Pattern对象 compile(regex, flags) flags : 设置修饰符,多个修饰符用 | 分割 matcher(str) 返回Matcher对象
Matcher
matches() 返回是否匹配、适用于匹配一次的判断 find() 是否有找到匹配的元素、常用于 while 循环、可匹配字符串多个元素 group() / group(0) 获取正则表达式匹配的内容 group(n) 获取第 n 个正则子表达式匹配的内容 start() / end() 获取匹配内容的 起始/结束 索引 appendReplacement(StringBuilder, replacement) 追加替换后的内容到 StringBuilder容器中 appendTail(StringBuilder) 将字符串尾部内容追加到 StringBuilder容器中 PS: JDK9 支持 StringBuilder 低版本传入 StringBuffer,可用于处理字符串模板、例如SQL替换
Pattern p = Pattern . compile ( "cat" ) ;
Matcher m = p. matcher ( "one cat two cats in the yard" ) ;
StringBuilder sb = new StringBuilder ( ) ;
while ( m. find ( ) ) {
m. appendReplacement ( sb, “dog”) ;
}
m. appendTail ( sb) ;
字符串支持正则的方法
matches(regex) replaceAll(regex, replacement) replaceFirst(regex, replacement) split(regex, limit=0)