java后台利用Pattern提取所需字符

写在处理问题的前面:由于项目功能迭代,导致原来的页面当中ID命名规则,与当前命名规则不同(ps:既然要用到原来的东西,为什么在设计的时候没有考虑到兼容的问题,无语),所以需要将原来的所有ID提取出来。

遇到的问题,如何提取?

查找了许多方法之后,感觉使用Pattern提取比较符合需求。于是开始尝试。

1.首先进行简单测试

String str = "{abc<icon>{def:</icon>}deftfh<icon>a</icon>}";
Pattern p=Pattern.compile("<icon>\\{(\\w+)\\:</icon>");
Matcher m=p2.matcher(str2);while(m.find()){System.out.println(m.group(1));}

好的没问题,提取正常。于是将所需提取的一部分字符串拿出来进行测试。

2.项目内容测试

String str = "\"EquipmentID\":\"SSC_FZ_DQ#MJ23JZ_FZ_CZ_CZGX#YL#SBBM\",";
Pattern p=Pattern.compile("\"EquipmentID\":\"(\\w+)\",");
Matcher m=p2.matcher(str2);while(m.find()){System.out.println(m.group(1));}

问题来了,没有提取到任何内容。那试试只提取EquipmentID当中的字符呢,测试没问题。问题就在正则匹配上了。(\\w+)只适用于截取文字部分,改为(.*),ok,可以正常截取SSC_FZ_DQ#MJ23JZ_FZ_CZ_CZGX#YL#SBBM这部分了。
3.进行实操
建立数据库连接。

public class CopyOracle2MySQL1 {/*** 源数据库,目标数据库的连接配置*/private final String DEST_MYSQL_JDBC_URL = ;private final String SOURCE_JDBC_URL = "";private final String SOURCE_JDBC_USER = "";private final String SOURCE_JDBC_PASSWORD = "";public void startImport() throws Exception {// 创建到两个数据库的连接Class.forName("com.mysql.jdbc.Driver");//Class.forName("oracle.jdbc.driver.OracleDriver");Connection connDest = DriverManager.getConnection(DEST_MYSQL_JDBC_URL);//Connection connSource = DriverManager.getConnection(SOURCE_JDBC_URL, SOURCE_JDBC_USER, SOURCE_JDBC_PASSWORD);try {// 人工输入各表名(需要保证顺序,以确保有外键的表在主表之后插入数据)importTable(connDest, "APP_WGADDATA","qtsc_jk_scjkzttxx");} finally {// 自动关闭数据库资源connDest.close();//connSource.close();}}private void importTable(Connection connDest, String oracleTableName,String mysqlTableName) throws Exception {Statement stmt = null;try {stmt = connDest.createStatement();String mysqlSql = "select ZTTNR from qtsc_jk_scjkzttxx qjs where qjs.ZTTID  = '0284fcbdcdbd4da3bdef78ed769515c6'";String mysqlSql1 = "select ZTTNR from qtsc_jk_scjkzttxx";ResultSet rs = stmt.executeQuery(mysqlSql1);Map<String, String> sbbmMap = new HashMap();while(rs.next()){String zttnr = rs.getString(1);//System.out.println(zttnr);Pattern p = Pattern.compile("\"EquipmentID\":\"(.*)\",\"UnitName\"");Matcher m=p.matcher(zttnr);while(m.find()){System.out.println(m.group(1));}//System.out.println(sbbmMap);}// 先计算目标数据库的PreparedStatement的SQL语句zResultSetMetaData rsmd = rs.getMetaData();rs.close();}catch (Exception e){e.printStackTrace();}finally {if(stmt != null) {stmt.close();}}}public static void main(String[] args) throws Exception {CopyOracle2MySQL1 ins = new CopyOracle2MySQL1();ins.startImport();}

测试结果发现,在所有符合规则的前期下进行提取,发现,自动匹配到了最后一个",“UnitName”,很显然又是规则的问题,于是将(.)改为(.?)问题解决。

java后台利用Pattern提取所需字符相关推荐

  1. java后台利用模板生成Word文档提供前台下载

    2016.12.06更新,java后台利用Apache poi生成Excel文档提供前台下载,博客链接http://blog.csdn.net/u010251278/article/details/5 ...

  2. java —— 后台利用监听器统计在线人数

    APP或者网页应用经常需要检测当前活跃用户数,利用监听器 HttpSessionListener ,可以在用户创建 session 的时候以此作为用户数+1的标志, session销毁时判断用户数-1 ...

  3. java后台处理excel_java后台利用Apache poi 生成excel文档提供前台下载示例

    之前在项目中会用到在java在后台把数据填入Word文档的模板来提供前台下载,为了自己能随时查看当时的实现方案及方便他人学习我写了这篇博客,访问量已经是我写的博客里第一了.于是乎我在学会用Java在后 ...

  4. java 取文本中间_Java 如何利用正则表达式提取两个指定标记符号之间的字符串内容...

    Java 开发中,我们往往需要从非结构化的文本数据中截取两个特定字符之间的内容,可以利用正则表达式获取其间信息. 解决方法 将正则表达式用 Pattern 类的静态方法 compile 一个对象,该对 ...

  5. java 数组正则表达式_java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】...

    本文实例讲述了java正则表达式实现提取需要的字符并放入数组.分享给大家供大家参考,具体如下: 这里演示java正则表达式提取需要的字符并放入数组,即arraylist数组去重复功能. 具体代码如下: ...

  6. java利用正则表达式提取字符串中的整数和小数部分

    最近开发遇到一个新的东西,就是前端传过来一个字符串,需要将里面的数字提取出来,倒腾了一天,最后还是没有倒腾出来,最后还是借鉴大佬的方法.记录一下. 首先是前端传来的字符串"小明通过扫码向你付 ...

  7. Java程序利用POJ读写Excel的.xls或.xlsx文件所需的3个jar包

    Java程序利用POJ读写Excel文件时,不能只用poi的jar包,因为它还依赖于xmlbeans的jar包,xmlbeans又以来与common-collections的jar包,因此,正常使用P ...

  8. java后台常见问题

    Java后台面试 常见问题 Nginx负载均衡 轮询.轮询是默认的,每一个请求按顺序逐一分配到不同的后端服务器,如果后端服务器down掉了,则能自动剔除 ip_hash.个请求按访问IP的hash结果 ...

  9. 利用Python提取PDF文件中的文本信息

    如何利用Python提取PDF文件中的文本信息 日常工作中我们经常会用到pdf格式的文件,大多数情况下是浏览或者编辑pdf信息,但有时候需要提取pdf中的文本,如果是单个文件的话还可以通过复制粘贴来直 ...

最新文章

  1. Eclipse MyEclipse下常用快捷键介绍
  2. jQuery操作input改变value属性值
  3. softmax ce loss_神经网络中的蒸馏技术,从Softmax开始说起
  4. Linux jdk配置/下载/安装简单说明
  5. Hardware assisted virtualization and data execution protection must be enabled in the BIOS
  6. 12- APP接口测试以及接口文档的分析
  7. 下载MySQL并创建桌面数据库_sql桌面数据库
  8. Windows7之SSH,安装OpenSSH实现SSH客户端及服务
  9. java计算机毕业设计智慧校园食堂点餐系统源码+mysql数据库+系统+lw文档+部署
  10. SoX 音频处理工具使用方法
  11. 黑色渐变背景css,css-渐变背景,爱了爱了。
  12. 安装带有 SSH 的 SOCKS 服务器!
  13. IDEA代码文件导航-Navigate使用技巧
  14. WPF 鼠标光标大全
  15. 《30天自制操作系统》-day2(MAC)
  16. pycharm更换国内源
  17. 趣味算法 四个点在同一个半圆的概率
  18. Spring系列第10篇:primary可以解决什么问题?
  19. python海量数据分析师_数据分析师真的月入过万吗?(基于Python的招聘数据分析全流程实操)...
  20. Styled-Components

热门文章

  1. 广东中山大学计算机专业650,中山大学超级计算学院首届本科生入学 省内均分650...
  2. 人工智能写一封种子信,真诚又用心(挽回必备神器)
  3. 股票程序化交易软件好用吗?
  4. 站长之家上线“站长号”写作平台
  5. mysql utf8mb4 配置_MySQL数据库UTF8mb4设置
  6. 我把一切告诉你,怎么去做一个项目。
  7. 查看linux防火墙状态
  8. 龙珠激斗服务器维护多久,龙珠激斗
  9. 计算机应用技术轻薄本,高配置轻薄笔记本推荐,终结你的选择困难症!
  10. Python下mysql数据库连接池