正则表达式是很强大的,今天先来总结一下Java正则表达式的几种匹配模式。

Java Pattern的模式

  • UNIX_LINES:Unix格式,在这种模式下,\n能够通过.,^,$的匹配

  • CASE_INSENSITIVE:大小写敏感,CASE_INSENSITIVE只能使US-ASCII码里的字符大小写敏感

  • COMMENTS:注释模式,这种模式下会忽略空白,以及以#开头的注释

  • MULTILINE:开启多行模式,在这种模式下^,$会匹配每一行的开始和结束。在默认情况下^,$只匹配输入的开始和结束

  • LITERAL:字面值模式,在这个模式下正则表达式的 转义字符元字符 都不会有特殊的意义,只表示字面值。当此标记与CASE_INSENSITIVEUNICODE_CASE之外的标记一起使用时不会有效果。

  • DOTALL:在此模式下.可以匹配任意字符,包括换行符。在默认模式下.不能匹配换行符

  • UNICODE_CASE:Unicode字符大小写敏感,开启此标记可能会降低性能。

  • CANON_EQ:Unicode等价性,在此模式下只要两个字符在Unicode的等价规则下相等就会匹配,比如a\u030A\u00E5是等价的都表示字符å。关于Unicode等价规则参见百度百科