java后台怎么利用Pattern提取所需字符
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要讲解了"java后台怎么利用Pattern提取所需字符",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java后台怎么利用Pattern提取
千家信息网最后更新 2025年11月07日java后台怎么利用Pattern提取所需字符
这篇文章主要讲解了"java后台怎么利用Pattern提取所需字符",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java后台怎么利用Pattern提取所需字符"吧!
写在处理问题的前面
由于项目功能迭代,导致原来的页面当中ID命名规则,与当前命名规则不同(ps:既然要用到原来的东西,为什么在设计的时候没有考虑到兼容的问题,无语),所以需要将原来的所有ID提取出来。
遇到的问题,如何提取?
查找了许多方法之后,感觉使用Pattern提取比较符合需求。于是开始尝试。
1.首先进行简单测试
String str = "{abc{def: }deftfha }";Pattern p=Pattern.compile("\\{(\\w+)\\: ");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 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语句z ResultSetMetaData 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.通过正则表达式获取:
String str = "你好呀(嘻嘻)"; Pattern p = Pattern.compile("\\(([^\\)]+)"); Matcher matcher = p.matcher(str); if (matcher.find() && matcher.groupCount() >= 1){ System.out.println(matcher.group(1)); }2.通过字符截取获取:
String str = "你好呀(嘻嘻)"; String xixi = str.substring(str.indexOf("(") + 1, str.indexOf(")")); System.out.println(xixi);感谢各位的阅读,以上就是"java后台怎么利用Pattern提取所需字符"的内容了,经过本文的学习后,相信大家对java后台怎么利用Pattern提取所需字符这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
问题
字符
数据
数据库
内容
测试
后台
嘻嘻
正则
规则
好呀
学习
字符串
目标
表达式
项目
不同
东西
两个
人工
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发eif是什么意思
ipsec服务器软件
党政会议网络安全内容
网络安全技术是什么职业
哪些部门有征信数据库
软件开发讲座报告
济南市司法局鉴定机构数据库
少年三国志青梅竹马服务器
阿里中国网络技术
网络安全保障工作情况报告
万德数据库怎么查公司数据
网络安全宣传短语
保定软件开发
上交网络安全专业
软件开发项目实施计划书
数据库原理三级项目指导
山东网络安全应急响应中心
ftp服务器错误
初一学生网络安全主题征文
电脑怎么下载花雨庭服务器
杭州市网络安全行业晋升路线
北京朝阳网络安全大队电话
廊坊进销存软件开发多少钱
哪里可以找到好的服务器
万德数据库怎么查公司数据
网络安全法 部门负责
互联网科技小程序
人间地狱服务器怎么收藏
常见的关系型数据库
怎样查看管理苹果服务器上的照片