正式表达式

Posted angelshelter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正式表达式相关的知识,希望对你有一定的参考价值。

2019-09-11

受别人例子的影响,以为group就是匹配所有满足条件的子串

if (m.find( )) 
  System.out.println("####" +  m.groupCount());
   for(int i=0;i<m.groupCount();i++) 
     System.out.println( m.group(i+1));
   
 else 
  System.out.println("NO MATCH");

后来才知道,group对应你的正则ge表达式里面有几个(),因为我一直只用了一个,所以返回的groupCount一直为1。所以新的写法是

while(m.find( )) 
    System.out.println("---------");
    System.out.println( m.group(1));

还有,我的源串里面因为是多行的,所以在匹配的时候,一旦跨行就匹配不上了(正则表达式是"<script>(.*?)</script>"),2种解决办法,一种是把源串

replace("\n", "")

第二种是:加一个flag标识,把点号也可以替换换行符

Pattern p = Pattern.compile("<script>(.*?)</script>", Pattern.DOTALL);

 

以上是关于正式表达式的主要内容,如果未能解决你的问题,请参考以下文章

正式表达式

JS正式表达式大全

7 月全球数据库排名;ECMAScript 2018 语言规范正式发布,改进正则表达式

JDK13正式发布:Switch表达式GC新垃圾回收算法低延时GCZGC改进究竟有多好?

.NET 7 预览版 2 已发布,NativeAOT 正式可用

Python 3.8测试阶段正式开始,发布Beta 1版