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

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

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

[java] view plain copy

  1. package com.starit.analyse.util;
  2. import java.text.SimpleDateFormat;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.regex.Matcher;
  6. import java.util.regex.Pattern;
  7. public class DealStrSub {
  8.     /**
  9.      * 正则表达式匹配两个指定字符串中间的内容
  10.      * @param soap
  11.      * @return
  12.      */
  13.     public static List<String> getSubUtil(String soap,String rgex){
  14.         List<String> list = new ArrayList<String>();
  15.         Pattern pattern = Pattern.compile(rgex);// 匹配的模式
  16.         Matcher m = pattern.matcher(soap);
  17.         while (m.find()) {
  18.             int i = 1;
  19.             list.add(m.group(i));
  20.             i++;
  21.         }
  22.         return list;
  23.     }
  24.     /**
  25.      * 返回单个字符串,若匹配到多个的话就返回第一个,方法与getSubUtil一样
  26.      * @param soap
  27.      * @param rgex
  28.      * @return
  29.      */
  30.     public static String getSubUtilSimple(String soap,String rgex){
  31.         Pattern pattern = Pattern.compile(rgex);// 匹配的模式
  32.         Matcher m = pattern.matcher(soap);
  33.         while(m.find()){
  34.             return m.group(1);
  35.         }
  36.         return "";
  37.     }
  38.     /**
  39.      * 测试
  40.      * @param args
  41.      */
  42.     public static void main(String[] args) {
  43.         String str = "abc3443abcfgjhgabcgfjabc";
  44.         String rgex = "abc(.*?)abc";
  45.         System.out.println(getSubUtil(str,rgex));
  46.         System.out.println(getSubUtilSimple(str, rgex));
  47.     }
  48. }

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

运行结果如下:

原文地址http://www.bieryun.com/614.html

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/396416

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。