正则表达式跨行非贪婪多组匹配
发布时间:2020-12-14 01:45:58 所属栏目:百科 来源:网络整理
导读:diva/divdivc/divdivf/div 找出div的内容,java代码如下: Patternp=Pattern.compile("(?s)div(.+?)/div");Strings="divrnarnbrn/divrndivrncrndrn/divrndivrnernfrn/div";Matcherm=p.matcher(s);while(m.find()){intcnt=m.groupCount
<div> <a> </div> <div> <c> </div> <div> <f> </div>
Patternp=Pattern.compile("(?s)<div>(.+?)</div>"); Strings="<div>rn<a>rn<b>rn</div>rn<div>rn<c>rn<d>rn</div>rn<div>rn<e>rn<f>rn</div>"; Matcherm=p.matcher(s); while(m.find()){ intcnt=m.groupCount(); for(inti=1;i<=cnt;i++){ System.out.println(m.group(i)); } } 1、跨行,表达式使用(?s),或Pattern.compile(,Pattern.DOTALL);2、非贪婪,Reluctant,在括号匹配组中加号后加上问号;3、多组匹配,Perl使用g标志请求恢复最后匹配丢失的匹配。此功能是由Matcher类显式提供:重复执行find方法调用可以恢复丢失的最后匹配,如代码使用while循环。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |