编程生活

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  113 随笔 :: 0 文章 :: 18 评论 :: 0 Trackbacks

由于项目需要,做了一个简单的SQL解析器,在网上查找到了两个,根据他们的想法修改了一下,可从SQL中提取结果查询字段和表

以下是代码中的一些正则表达式
private static final String TABLE_VALUE = "([^()]+)"

private static final String COLUMN_VALUE = "([^()]+)";

private static final String COLUMN_NAME = "([a-zA-Z0-9_]+)(\\.)([a-zA-Z0-9_]+)";

private static final String SQL_MATCH_REP = "(?i)select ([^;]+) (?i)from " + TABLE_VALUE;

private static final String FROM_JOIN_VALUE = TABLE_VALUE + " (?i)join " + "([^;]+)";

private static final String WHERE_VALUE = TABLE_VALUE + " (?i)where ([^;]+)";
posted on 2007-11-08 09:36 wilesun 阅读(1423) 评论(3)  编辑  收藏 所属分类: 个人经验

评论

# re: 我的SQL解析器中的用到的正则表达式 2007-11-08 09:38 wilesun
private static final String COLUMN_NAME = "([a-zA-Z0-9_]+)(\\.)([a-zA-Z0-9_]+)";
可以改为
private static final String COLUMN_NAME = "([\\w]+)(\\.)([\\w]+)";
  回复  更多评论
  

# re: 我的SQL解析器中的用到的正则表达式[未登录] 2010-06-02 16:36 lb
可不可以把解析器 发给我参考下 liubinxianggang@126.com  回复  更多评论
  

# re: 我的SQL解析器中的用到的正则表达式 2010-08-11 07:42 王怀帅
我也想要一份sql解析器的源码,能否给一份?谢谢!wangsh8714@163.com  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: