当前位置: 首页 > 编程日记 > 正文

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

相关文章:

【linux】Matchbox(二):基本概念

X server X server是Linux系统里面图形接口服务器的简称。Windows系统的界面是这个系统不可分割的一部分&#xff0c;各种窗口操作界面显示都是由系统核心直接管理的&#xff0c;而Linux的图形界面并不是系统的必要组成部分&#xff0c;它可以在无界面的条件下运行。当需要Lin…

Android 控件之ImageSwitcher图片切换器

ImageSwitcher是Android中控制图片展示效果的一个控件&#xff0c;如&#xff1a;幻灯片效果...&#xff0c;颇有感觉啊。做相册一绝 源码下载 一、重要方法 setImageURI(Uri uri)&#xff1a;设置图片地址 setImageResource(int resid)&#xff1a;设置图片资源库 setImageDra…

【Qt】Qt5.x移植后的环境配置(imx6)

1、环境配置脚本如下 #!/bin/shexport QTDIR=/usr/lib/qt5 export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins export QT_QPA_PLATFORM=eglfs:fb=/dev/fb0 export QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/input/event1 export QT_QPAFONTDIR=/usr/lib/fonts export QML2_IM…

程序员如何避免“滴滴式裁员”悲剧?

作者 | 徐麟转载自数据森麟&#xff08;ID:shujusenlin&#xff09;滴滴于2月15日正式发表裁员公告&#xff0c;想必很多互联网人的朋友圈都已经被这条消息刷屏了&#xff0c;其中最常见的莫过于下面这张图了&#xff1a;此图一出&#xff0c;广大互联网吃瓜群众不禁后背发凉&a…

windows服务搭建及命令总结

1、图解FTP服务器搭建(Windows Server 2008) https://wenku.baidu.com/view/803bdc1759eef8c75fbfb361.html?fromsearch https://www.cnblogs.com/john2017/p/6269671.html 2、WindowsServer2008下搭建ApachePHPMySQL https://wenku.baidu.com/view/2e82b99ea1116c175f0e7cd18…

Linux下的CST和UTC时间的区别

在linux中&#xff0c;用date查看时间的时候显示&#xff1a;2008年 12月 17日 星期三 09:04:14 CSTCST China Standard Time UTC8:00 中国沿海时间(北京时间)世界协调时间(Universal Time Coordinated,UTC)GPS 系统中有两种时间区分&#xff0c;一为UTC&#xff0c;另一为LT&a…

Python之父重回决策层,未来如何发展?

作者 | 豌豆花下猫来源 | Python猫&#xff08;ID&#xff1a;python_cat&#xff09;春节假期结束了&#xff0c;大家陆续地重回到原来的生活轨道上。假期是一个很好的休息与调节的机会&#xff0c;同时&#xff0c;春节还有辞旧迎新的本意&#xff0c;它是新的轮回的开端。在…

【Android】adb命令总结

1、adb version 显示ADB工具版本 2、adb devices 查询设备&#xff0c;显示设备序列号 3、adb sideload < file_location> 通过USB进行ROM刷机 4、adb install < apk文件路径> 安装APK 5、adb uninstall <软件名> 卸载软件 6、adb push <本地路径>…

MySQL中char与varchar的区别

字符与字节的区别 一个字符由于所使用的字符集的不同&#xff0c;会并存储在一个或多个字节中&#xff0c;所以一个字符占用多少个字节取决于所使用的字符集注意&#xff1a;char与varchar后面接的数据大小为存储的字符数&#xff0c;而不是字节数&#xff08;其实是5.0版本以上…

怎样在Red Hat Enterprise Linux 5.4版本上安装GCC?

注意&#xff1a;如果打算使用GUI的方式安装&#xff0c;需要导入GPG-Key(否则在使用GUI时会出现public key for *.rpm is not installed) 请切换到安装光盘目录下&#xff1a; cd /media 可以看到 RHEL* 的目录&#xff0c;然后切换到这个目录中&#xff1a; cd RHEL* 你需要运…

【C++】mingw32-make+cmake:error: ‘nullptr‘ was not declared in this scope解决方法

###问题 使用cmake成功&#xff08;Configuring done Generating done&#xff09;后&#xff0c;在cmd终端中执行 mingw32-make报错&#xff1a; error: nullptr was not declared in this scope###原因 nullptr是在c11的新内容。编译时&#xff0c;没有添加对C11的支持。 解…

喜得爱女,吴恩达深情撰文:欢迎你来到新世界!

整理 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;一个月前&#xff0c;吴恩达冷不丁在Twitter放出了重磅消息&#xff1a; “我们的最新‘成果’ Baby Ng 即将诞生&#xff01;2019 年 2 月见面&#xff01;”果然&#xff0c;昨日吴恩达公开了首个小公主降…

FastJson 简单使用

对象、List转JsonUser user new User(); /*JSON 序列化&#xff0c;默认序列化出的JSON字符串中键值对是使用双引号&#xff0c;如果需要单引号的JSON字符串&#xff0c; [eg:String jsonString JSON.toJSONString(map, SerializerFeature.UseSingleQuotes);] *fastjson序…

【数据安全案例】交警计算机系统再遭***,交通违法记录随意删除

根据新浪报道&#xff0c;据新华社10月14日电 利用当网管的机会&#xff0c;破解密码&#xff0c;非法进入交警计算机系统为他人删除车辆交通违法记录牟利。辽宁省鞍山市铁西区检察院透露&#xff0c;当地某公司员工程尚军因涉嫌破坏计算机信息系统罪&#xff0c;已于10月初被依…

开源,还能走多远?

【编者按】在各大厂纷纷拥抱开源的当口&#xff0c;“开源代码面临可持续发展危机”的言论也甚嚣尘上。早期&#xff0c;技术爱好者们“用爱发电”&#xff0c;“他们知道在出问题前&#xff0c;没人会注意到他们&#xff0c;没人会重视他们”。但遗憾的是&#xff0c;很长一段…

使用axis开发web service服务端

一、axis环境搭建 1.安装环境 JDK、Tomcat或Resin、eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4 下载Axis的jar包 3.将Axis的jar包放入WEB-INF/lib目录下 二、编写web service服务端 1.编写服务 package com.webservice;public class HelloWebservice {…

【Qt】qt打印文件名、函数名、行号

#include <QDebug> #define MyDebug qDebug()<<"[FILE:"<<__FILE__<<",LINE"<<__LINE__<<",FUNC"<<__FUNCTION__<<"]

【Qt】Qt项目常用代码总结

路径 获取当前路径 #include <QCoreApplication> QString appDirPath QCoreApplication::applicationDirPath(); 转换成对应系统路径 返回路径名&#xff0c;使分隔符转换为适合底层操作系统的分隔符。 windows下为“\”; linux下为“/” #include <QDir> a…

滴滴裁员补偿丰厚,员工称裁出幸福感?

整理 | 一一出品 | AI科技大本营&#xff08;rgznai100&#xff09;滴滴裁员的“靴子”正在逐步落地。据《财经》报道&#xff0c;滴滴近日已给出裁员的具体赔偿方案&#xff1a;补偿一般为 N1 个月&#xff0c;如果本周能确认&#xff0c;再额外给一个月补偿——这一个月补偿是…

shell编程基础

1. 程序的执行风格 程序编程风格&#xff1a;过去式&#xff1a;以指令为中心&#xff0c;数据服务于指令。对象式&#xff1a;以数据为中心&#xff0c;指令服务于数据。过程式编程有以下特点&#xff1a;1&#xff09; 顺序执行&#xff1a;指程序在执行的过程中&#xff0c;…

【Qt】QImage使用总结

图像格式转换 由 RGB 格式转换成 BGR 格式 QImage::rgbSwapped() 返回一个QImage,其中所有像素的红色和蓝色组件的值被交换,有效地将RGB图像转换为BGR图像。 QImage image(fileName); QImage bgr = image.rgbSwapped();将彩色图转换成 灰度图 使用QImage::convertToForma…

访问量最高超7百万的Stack Overflow问题竟然是...

整理 | Jane出品 | AI科技大本营&#xff08;公众号id&#xff1a;rgznai100&#xff09;Stack Overflow&#xff0c;一个面向开发者的 IT 技术问答网站&#xff0c;很多程序员都会在上面提问&#xff0c;浏览问题&#xff0c;查找技术知识。在 Top Question 页面&#xff0c;我…

CentOS 6.9下配置安装KVM

注意&#xff1a;KVM一切安装和运行都是在root用户下完成的&#xff0c;并且只有root才能支持某些软件。 一、准备工作&#xff1a; 1、查看系统版本、内核版本 ##查看系统版本 # cat /etc/redhat-release CentOS release 6.4 (Final) ##查看内核版本 # uname -a Linux KVM 2.6…

感觉要大病一场了

呵呵&#xff0c;这两天很累&#xff0c;再加上天气的原因&#xff0c;整个人晕乎乎的&#xff0c;其实很累&#xff0c;可就是睡不着&#xff0c; 其实我不知道是身体的累&#xff0c;还是心累了&#xff0c;总之&#xff0c;整个人就是提不起做事的激情来一个人就这样浑浑噩噩…

【视频】使用VLC采集摄像头,以RTSP协议发送流到网络上

VLC官网 http://www.videolan.org/ VLC3.0.1搭建失败 本人使用VLC3.0.1,搭建失败,总报无法打开URL VLC2.1.5搭建成功 VLC2.1.5官网地址及下载地址 www.videolan.org/vlc/releases/2.1.5.html http://get.videolan.org/vlc/2.1.5/win32/vlc-2.1.5-win32.exe 搭建RTSP …

优质中文NLP资源集合,做项目一定用得到!

整理 | Jane出品 | AI科技大本营&#xff08;公众号id&#xff1a;rgznai100&#xff09;今天要给大家在推荐 Github 上一个优质的中文 NLP 工具和资源集合项目——funNLP&#xff0c;已经获得了 5.3k Stars&#xff0c;1k Forks。项目作者 杨洋&#xff0c;一枚水博&互联网…

小程序:js获取验证码时(倒计时模块)

代码例子截图最近在上手开发小程序&#xff0c;发现其实小程序要比vue真的要简单太多了&#xff0c;有一套自己的html(WXML)&#xff0c;css(WXSS)&#xff0c;虽然有些标签不能直接沿用html5的标签来开发&#xff0c;不过内置的标签还是很好记也不多。今天在做公司的项目时&am…

十大经典排序算法动画与解析,看我就够了

作者 | 程序员小吴转载自五分钟学算法&#xff08;ID: CXYxiaowu&#xff09;排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序。内部排序是数据记录在内存中进行排序。而外部排序是因排序的数据很大&#xff0c;一次不能容纳全部的排序记…

Crystal Reports 财务日记帐凭证套打设计

Crystal Reports 财务日记帐凭证套打设计 一、首先大家看下财务日记帐凭证的纸张格式&#xff1a; 下面我们来分析下有几点要素&#xff1a;1、每页显示5行记录&#xff0c;2、就是在合计处的中文金额大写了。其他页眉页脚在水晶报表中很容易设计。 二、报表设计&#xff1a;在…

oozie调度中的重试和手工rerun一个workflow

在oozie中有Bundle、Coordinator和Workflow三种类型的job&#xff0c;他们之间可以有以下包含关系。 Bundle > Coordinator > Workflow。 1. 重新运行一个Coordinator job&#xff0c;可以通过如下命令&#xff1a; oozie job -rerun 0000034-180116183039102-oozie-hado…