50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > java正则表达式获取指定两个字符串之间内容

java正则表达式获取指定两个字符串之间内容

时间:2020-10-03 13:48:35

相关推荐

java正则表达式获取指定两个字符串之间内容

xml解析利用正则表达式获取指定两个字符串之间内容

在遇到解析复杂xml的时候,想到大家所想到的都是利用dom4j作为首发工具,但是当遇到层次很多,较为复杂,我们难道还需要从根节点一层一层的解析下去吗?此时不仅代码繁琐,而且准确率还不是那么高,采用此种方式,可以获取指定两种字符串之间的任意xml文本。

[java]view plain copy

packagecom.starit.analyse.util; importjava.text.SimpleDateFormat; importjava.util.ArrayList; importjava.util.List; importjava.util.regex.Matcher; importjava.util.regex.Pattern; publicclassDealStrSub{/** *正则表达式匹配两个指定字符串中间的内容*@paramsoap*@return*/publicstaticList<String>getSubUtil(Stringsoap,Stringrgex){List<String>list=newArrayList<String>();Patternpattern=pile(rgex);//匹配的模式 Matcherm=pattern.matcher(soap);while(m.find()){inti=1;list.add(m.group(i));i++;}returnlist;} /** *返回单个字符串,若匹配到多个的话就返回第一个,方法与getSubUtil一样*@paramsoap*@paramrgex*@return*/publicstaticStringgetSubUtilSimple(Stringsoap,Stringrgex){Patternpattern=pile(rgex);//匹配的模式 Matcherm=pattern.matcher(soap);while(m.find()){returnm.group(1);}return"";} /** *测试*@paramargs*/publicstaticvoidmain(String[]args){Stringstr="abc3443abcfgjhgabcgfjabc";Stringrgex="abc(.*?)abc";System.out.println(getSubUtil(str,rgex));System.out.println(getSubUtilSimple(str,rgex));}}

若给出的正则表达式rgex匹配不到的话,就会返回空,这两个方法运用得当,解析复杂的xml就迎刃而解了。

运行结果如下:

原文地址/614.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。