设为首页 加入收藏

TOP

Java正则替换一例
2014-11-24 02:58:06 来源: 作者: 【 】 浏览:1
Tags:Java 正则 替换

  不区分大小写,换行支持。。。,一个SQL工具要用这个代码。


  package com.lavasoft.regtest;


  import java.util.regex.Matcher;


  import java.util.regex.Pattern;


  /**


  * 正则表达式SQL工具


  *


  * @author leizhimin 2010-5-18 10:34:34


  */


  public class RegexToolkit {


  // private static final Pattern p_wellsql = Pattern.compile("\\s+ where\\s* and\\s+ ", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);


  private static final Pattern p_wellsql = Pattern.compile("( i)( m)\\s+ where\\s* and\\s+ ");


  public static String genWellSQL(String badSQL) {


  Matcher m = p_wellsql.matcher(badSQL);


  return m.replaceAll(" where ");


  }


  public static void main(String[] args) {


  String badsql = "select x.subs_level_id, count(x.logdataid)\n" +


  " from (select a.*\n" +


  " from qm_subject_mining a\n" +


  "\t Where \n" +


  "\t aND a.orgid = 901\n" +


  " order by a.subs_level_id, a.usersatisfy, a.callstarttime desc) x\n" +


  " WHere And rownum <= 30\n" +


  " group by subs_level_id;";


  String wellsql = genWellSQL(badsql);


  System.out.println("替换前SQL:\n" + badsql);


  System.out.println("替换后SQL:\n" + wellsql);


  }


  }


  运行结果:


  替换前SQL:


  select x.subs_level_id, count(x.logdataid)


  from (select a.*


  from qm_subject_mining a


  Where


  aND a.orgid = 901


  order by a.subs_level_id, a.usersatisfy, a.callstarttime desc) x


  WHere And rownum <= 30


  group by subs_level_id;


  替换后SQL:


  select x.subs_level_id, count(x.logdataid)


  from (select a.*


  from qm_subject_mining a where a.orgid = 901


  order by a.subs_level_id, a.usersatisfy, a.callstarttime desc) x where rownum <= 30


  group by subs_level_id;


  Process finished with exit code 0


  注意:一下两行代码是等价的。


  private static final Pattern p_wellsql = Pattern.compile("\\s+ where\\s* and\\s+ ", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);


  private static final Pattern p_wellsql = Pattern.compile("( i)( m)\\s+ where\\s* and\\s+ ");


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇随机子集的Java实现 下一篇最简单破解Xcode,切换破解状态

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: