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

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

  1. java如何输出指定两个日期之间的所有日期

    引用:http://zhidao.baidu.com/link?url=swmihI3D6rISvViB1N9_bkuxkmajokhoW6cIvPBEux3BdB4WrgoDcrgdG25Mm9ln ...

  2. java两个日期之间所有日期_java如何输出指定两个日期之间的所有日期

    java如何输出指定两个日期之间的所有日期 关注:252  答案:3  mip版 解决时间 2021-01-31 04:38 提问者等妳¬硪唯一鍀执念 2021-01-31 01:40 java如何输 ...

  3. php获取两个字符,php获取两个字符串之间的子字符串

    指定原始字符串,给定开始和结尾字符串,获得这两个字符串之间的子字符串的php函数 /** * Returns the substring between two strings, delimiters ...

  4. 用正则表达式获取指定的字符串续_取出所有符合要求的字符串

    在上一篇用正则表达式获取指定的字符串中,只是简单处理了下符合要求的字符串,假如有多个符合要求的自私办呢,本来懒得弄,后来还是有一网友也问了同一个问题,如是试了一下,用递归 function GetNe ...

  5. 两个字符串之间的复制,不使用strcopy()函数

    1.strcopy()函数 strcopy()函数只提供字符串的复制.即strcopy()只用于字符串之间的复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. #include <io ...

  6. 正则表达式——获取指定IP的物理地址

    正则表达式--获取指定IP的物理地址 网站常用的模块可能出了注册.登陆.发稿.留言.评论,剩下比较重要的也许就是获取IP并作相应的数据处理了.自己搭建IP数据库占资源,而且更新不便,何不使用现成的IP ...

  7. 如何计算两个字符串之间的文本相似度?

    如何计算两个字符串之间的文本相似度? 前言 平时的编码中,我们经常需要判断两个文本的相似性,不管是用来做文本纠错或者去重等等,那么我们应该以什么维度来判断相似性呢?这些算法又怎么实现呢?这篇文章对常见 ...

  8. java 两日期的周数_利用 Java 中 Calendar 计算两个日期之间的天数和周数

    利用 Java 中 Calendar 计算两个日期之间的天数和周数 前言 究竟什么是一个 Calendar 呢? 中文的翻译就是日历, 那我们立刻可以想到我们生活中有阳 (公) 历阴 (农) 历之分它 ...

  9. 两个字符串之间的连接函数,不使用strcat()函数

    #include <stdio.h>// 获得字符串的长度 int getLength(char* src) {int len;for(len = 0; src[len] != '\0'; ...

最新文章

  1. socket可以写成单例嘛_精读《设计模式 - Singleton 单例模式》
  2. 基于Leaflet和GraphHopper实现离线路径规划
  3. 怎样学java软件编程6_月光软件站 - 编程文档 - Java - 我学习使用java的一点体会(6)...
  4. C#创建Word文档
  5. PyTorch | Tensor、Numpy、Variable之间的转换
  6. 基于Xml 的IOC 容器-载入配置路径
  7. 文献阅读(part1)--A Survey of Clustering With Deep Learning From the Perspective of Network Architecture
  8. java邮箱exchange_使用Javamail访问Microsoft Exchange邮箱(IMAP,MS Exchange)
  9. google now
  10. 欣赏多彩的计算机作品教案,三年级上信息技术教案-欣赏多彩的计算机作品(一)云南版...
  11. python的前世今生
  12. 从CSDN用户密码泄露谈一些非技术安全对策
  13. Linux查找link文件,Linux下查找一个文件的所有软硬链接
  14. polar函数--Matplotlib
  15. 使用XTU降低CPU功耗,自动执行不失效
  16. mysql对单引号的模糊查询_SQL语句中的单引号处理以及模糊查询
  17. MySQL数据库-更新表中的数据详解
  18. yaml文件关联多接口变量
  19. flash游戏html5支持吗,当flash邂逅html5
  20. 项目管理中-采购管理

热门文章

  1. 内存检测工具Dr. Memory的使用
  2. matlab常遇小问题汇总
  3. c++ssh连接_一步步使SSH连接您的github仓库
  4. 怎样创造计算机语言,如何创建编译成JavaScript的编程语言
  5. Java项目:人力管理系统(java+Gui+文档)
  6. java 声明静态类_java静态类声明--java类可以声明为static吗
  7. python traceback安装_Python错误:Traceback (most recent call last):感觉是软件出了问题
  8. 二叉树的基本应用知识总结
  9. Typora链接跳转,页内和页外
  10. 扩展城市信道etu模型matlab仿真,LTE System Toolbox:无线通信系统的仿真、分析和测试...