-
请教一个java的正则表达式15
如题:
我要将 一段字符
select * from t_tab where name=? and pass=? and age=?
匹配出 name=?
pass = ?
age = ?
请熟悉的赐教2010年8月20日 10:11
2个答案 按时间排序 按投票排序
-
String str = "select * from t_tab where name=? and pass=? and age = ? order by a = ?"; Pattern p = Pattern.compile("(?<=where)( *[^ ]* *= *\\? *(and)?)*"); Matcher m = p.matcher(str); while (m.find()) { String group = m.group(); String[] arr = group.split("and"); for (String s : arr) { System.out.println(s); System.out.println(s.split("=")[0].trim()); } }
2010年8月20日 11:14
-
这个东西如果就是你这条语句,实现起来是比较简单的,但是这是死的。要想写出比较好的解析方案,regex是不能完全瞒住这个需求的,还有可以通过其它办法来做,
1从where拆分,然后匹配=号,这样就可以匹配出来。这个是sql树原理
2终极解决办法:你需要一个sql编译器。
我现在也遇到这样的问题,就是要对sql里面的常量值进行审计,用的是oracle数据库。
由于sql语句的多样性和复杂性导致很难完全解析出来。终极解决方案是sql分析器。
这个是数据库的核心技术,很难在短时间内攻克!
推荐书籍 lex &yacc
javaCC2010年8月20日 11:05
相关推荐
Java正则表达式Java正则表达式Java正则表达式Java正则表达式
本文写作时,一个包含了用正则表达式进行文本处理的Java规范需求(Specification Request)已经得到认可,你可以期待在JDK的下一版本中看到它。 然而,如果现在就需要使用正则表达式,又该怎么办呢?你可以从Apache...
java,正则表达式,详解,java正则表达式,PDF
java正则表达式java正则表达式java正则表达式java正则表达式java正则表达式java正则表达式
正则表达式之道.doc 正则表达式中的特殊字符.doc Java正则表达式详解.doc 正则表达式.ppt JAVA正则表达式--Pattern和Matcher.doc 例子
java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解
JAVA正则表达式JAVA正则表达式JAVA正则表达式
java使用正则表达式进行校验验证,主要使用了Pattern和Matcher类,直接main方法运行就可以,亲测有效
Java正则表达式 Java 正则表达式 图片版 携带方便,查阅方便!~
java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解
java正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdf
Java正则表达式介绍和练习Java正则表达式介绍和练习Java正则表达式介绍和练习
JAVA正则表达式应用:任意输入一串字符串 如何输入exit退出程序;从输入的字符串中判断是否包含手机号码 正则表达式可以使用" +86| 86 1 d{10}" 如果包含请将其在控制台打印出来 否则输出不包含字符串 ...
正则表达式的使用 java正则表达式的使用示例 java正则表达式
Java正则表达式应用总结
java实现用正则表达式的方法提取html中的信息,可以提取标题,正文,链接等。经过运行,没问题的
正则表达式匹配工具很好很强大 放心使用 内附各种经典正则匹配公式
Java正则表达式入门介绍.ppt,介绍常用语法规则及使用方式等
Java正则表达式构造SQL语句Java正则表达式构造SQL语句Java正则表达式构造SQL语句
java正则表达式验证IP地址