20230626 java.util.regex.Pattern

发布时间 2023-08-29 17:08:03作者: 流星<。)#)))≦

介绍

  • java.util.regex.Pattern
  • public final class Pattern implements java.io.Serializable
  • 正则表达式的编译表示

API

常量

flag

  • UNIX_LINES
    • 启用 UNIX 行模式
    • 在多行模式中匹配 ^$ 时,只有 \n 被识别成行终止符
  • CASE_INSENSITIVE
    • 不区分大小写
    • 匹配字符时忽略字母的大小写,默认情况下,这个标志只考虑 US ASCII 字符
  • COMMENTS
    • 注释模式
    • 空白字符和注释(从 # 到行末尾)将被忽略
  • MULTILINE
    • 多行模式
    • ^$ 匹配行的开头和结尾,而不是整个输入的开头和结尾
  • LITERAL
    • 字面值模式
    • 该模式将被逐字地采纳,必须精确匹配,因字母大小写而造成的差异除外
  • DOTALL
    • 点号模式
    • 当使用这个标志时,. 符号匹配所有字符,包括行终止符
  • UNICODE_CASE
    • 启用Unicode区域设置感知的区分大小写
    • 选择 Unicode 字符类代替 POSIX ,其中蕴含了 UNICODE_CASE
  • CANON_EQ
    • 正则表达式使用Unicode规范等价形式
    • 考虑 Unicode 字符规范的等价性,例如,u 后面跟随 ¨(分音符号)匹配 ü
  • UNICODE_CHARACTER_CLASS
    • 启用Unicode字符类
    • 当与 CASE_INSENSITIVE 组合使用时,用 Unicode 字母的大小写来匹配

static

  • compile
    • Pattern compile(String regex)
    • Pattern compile(String regex, int flags)
    • 把正则表达式字符串编译到一个用于快速处理匹配的模式对象中
    • flags 使用在 Pattern 类中定义的常量,如果需要多个,通过 | 计算后传入,例如 Pattern.CASE_INSENSITIVE | Pattern.DOTALL
    • flags 默认是 0 ,不启用任何 flag
  • matches
    • boolean matches(String regex, CharSequence input)
  • quote
    • String quote(String s)

public

  • pattern

    • 对应 regex
  • flags

  • matcher

    • 返回 matcher 对象,你可以用它在输入中定位模式的匹配
  • split, splitAsStream

    • 将输入分割成标记,其中模式指定了分隔符的形式
    • 返回标记数组,分隔符并非标记的一部分
  • asPredicate

    • Predicate<String> asPredicate()
    • 使用 Matcher.find 判断
  • asMatchPredicate

    • Predicate<String> asMatchPredicate()
    • 使用 Matcher.matches 判断