码迷,mamicode.com
首页 > 其他好文 > 详细

正式表达式

时间:2019-09-11 15:59:03      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:正则表达   script   换行符   flag   class   式表   div   lse   find   

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);

 

正式表达式

标签:正则表达   script   换行符   flag   class   式表   div   lse   find   

原文地址:https://www.cnblogs.com/angelshelter/p/11506246.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!