Java常用的匹配模式

285人已阅读 2018-08-21 17:54:59
导读 要启用dotall模式。在dotall模式下,模式当中的.可以匹配任意字符,*括换行符
UI设计培训 java开发培训 大数据开发培训 web前端开发培训 ocp认证培训 产品经理培训 交互设计培训 MYSQIOC培训 平面设计培训 网页设计培训 ps培训 数据分析挖掘培训 python人工智能培训

新闻详情

2018-08-21 17:54:59

Java常用的匹配模式

  要启用dotall模式。在dotall模式下,模式当中的.可以匹配任意字符,*括换行符

  1)Pattern.DOTALL
  启用dotall模式。在dotall模式下,模式中的.匹配任意字符,*括换行符。在默认情况下(即未启用dotall模式),.不匹配换行符。等价于修饰符(?s)。
  val p=Pattern.compile(".*",Pattern.DOTALL)val m=p.matcher("play\nscala")
  println(m.matches())//输出true
  2)Pattern.MULTILINE
  启用多行匹配模式。在多行匹配模式下,模式中的^和$将逐次匹配每一行的行首和行尾。在默认情况下(即未启用多行匹配模式),^和$将匹配整个字符串的首部和尾部。等价于修饰符(?m)。
  val p=Pattern.compile("^.*$",Pattern.MULTILINE)val m=p.matcher("play\nscala")while(m.find()){
  println("find:"+m.group(0))
  }//输出find:play
  find:scala
  3)Pattern.UNIX_LINES
  启用Unix换行模式,使用"\n"标识每一行的末尾,等价于修饰符(?d)。
  val p=Pattern.compile("^.*$",Pattern.UNIX_LINES|Pattern.MULTILINE)val m=p.matcher("play\r\nscala")while(m.find()){
  println("find:"+m.group(0).length)
  }//输出find:5find:5
  输出的两个结果长度都为5,原因是play末尾还有一个字符\r。
  4)Pattern.CASE_INSENSITIVE
  启用大小写不敏感匹配,等价于修饰符(?i)。
  val p=Pattern.compile("^S.*A$",Pattern.CASE_INSENSITIVE)val m=p.matcher("scala")
  println(m.matches())//输出true
  5)Pattern.LITERAL
  启用字面(literal)模式解析,模式中的元字符和转义字符将按照普通字符解析。
  val p=Pattern.compile(".*",Pattern.LITERAL)val m=p.matcher("scala")
  println(m.matches())//输出false
  6)Pattern.COMMENTS
  正则表达式中允许出现空白符(whitespace)和注解(comments),空白符会被忽略,以#开头的注解行也将被忽略,等价于修饰符(?x);
  val p=Pattern.compile(".*",Pattern.COMMENTS)val m=p.matcher("scala")
  println(m.matches())//输出true
  注:有些编程语言(例如JavaScript)不支持嵌入模式修饰符(embedded mode modifier),这时可以使用另一种解决方案:
  [\s\S]*
  [\s]会匹配任意空白字符,[\S]而则会匹配[\s]不能匹配的任意字符。把这二者组合起来构成[\s\S],这样就会得到一个*含所有字符的字符组,其中也*含了换行符。

  以上就是海文国际教育小编为大家精心整理出来的内容啦,更多资讯记得定期关注我们哦!
上一篇: web前端培训之CSS3选择器的逻辑处理 下一篇: GitHub快速入门指南

相关文章

推荐课程

查看全部课程
重庆海文国际教育

重庆海文国际教育

渝北校区

查看全部校区 进入官方主页