正则表达式疑问记录
发布时间:2020-12-14 01:12:15 所属栏目:百科 来源:网络整理
导读:如下字符串: 【/spanspan style="FONT-FAMILY: #39;宋体#39;; LETTER-SPACING: 0pt; COLOR: rgb(0,0); FONT-SIZE: 10.5pt; mso-spacerun: #39;yes#39;"药理学/spanspan style="FONT-FAMILY: #39;宋体#39;; LETTER-SPACING: 0pt; COLOR: rgb(0,0); FONT-SIZ
如下字符串:
【</span><span style="FONT-FAMILY: '宋体'; LETTER-SPACING: 0pt; COLOR: rgb(0,0); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">药理学</span><span style="FONT-FAMILY: '宋体'; LETTER-SPACING: 0pt; COLOR: rgb(0,0); FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">】 我想要的结果是: 【药理学】 代码如下: public static String deleteBetweenByRegex(String str,String open,String close) { if (StringUtils.isNotBlank(open) && StringUtils.isNotBlank(close) && StringUtils.isNotBlank(str)) { StringBuffer sb = new StringBuffer().append('(').append(open) .append(".+").append(close).append(')'); String regex = sb.toString(); System.out.println(regex);//输出结果:(<.+>) Pattern p = Pattern.compile(regex); Matcher m = p.matcher(str); int i = 0; while (m.find()) { str = StringUtils.remove(str,m.group(1)); System.out.println(i++); } } return str; } 调用此方法返回结果却是: 【】, 此后我无意间加了一个问号'?',如下: StringBuffer sb = new StringBuffer().append('(').append(open) .append(".+?").append(close).append(')'); 结果输出正常: 【药理学】,虽然结果对了,但不明白为何加上'?'就可以了?! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |