当前位置: 代码迷 >> J2SE >> 请问一个截取SQL字符串正则表达式的写法
  详细解决方案

请问一个截取SQL字符串正则表达式的写法

热度:76   发布时间:2016-04-24 13:07:34.0
请教一个截取SQL字符串正则表达式的写法
有这样一条数据:
 String str = "~~UPDATE SY_TABLE_FIELD SET FIELD_DEFAULT='王' where FIELD_CODE='XYHY_QYDD' AND TABLE_CODE='EQ_XYHY';@@ALTER TABLE EQ_XYHY MODIFY(XYHY_QYDD DEFAULT '王');~~UPDATE EQ_XYHY SET XYHY_HYBH='测试数据',XYHY_QUAN=30 WHERE XYHY_CODE='00000000000000000603'";

我要得到两部分sql语句DML/DDL
@@字符用于表示DDL语句
~~用于表示DML语句

------解决方案--------------------
好家伙,把正则表达式当语法分析工具用啊
------解决方案--------------------
不会正则的人泪奔咩~~``
Java code
public void ybygjy(String str){  List<String> dml = new ArrayList<String>();  List<String> ddl = new ArrayList<String>();   String[] sqlArray = str.split("~~");  for(String s : sqlArray)  {    String[] sql = s.split("@@");        if(sql!=null && sql.length>0)    {      if( sql[0]!=null && !"".equals(sql[0]) )      {        dml.add(sql[0]);      }    }    else    {      break;    }            for(int i=1;i<sql.length;i++)    {      if( sql[i]!=null && !"".equals(sql[i]) )      {        ddl.add(sql[i]);      }    }  }}