我试图通过正则表达式来破坏SQL查询。如果存在ORDER BY,我的目标基本上是抓住FROM和ORDER BY之间的内容。从正则表达式中排除特定的子字符串
因此,例如对于查询:SELECT * FROM TableA WHERE ColumnA=42 ORDER BY ColumnB
它应该捕获TableA WHERE ColumnA=42
,并且它还应该捕获ORDER BY表达式是否不存在。
我能来的最近的是SELECT (.*) FROM (.*)(?=(ORDER BY))
,如果没有ORDER BY就会失败。
希望我失去了一些明显的东西。我一直在使用Expresso在过去的一个小时里试图获得它。
这只是一个小小的修改(通过捕获将第二捕获表达式和捕获顺序之间的空间移动到顺序中)非常感谢你 – 2010-05-06 18:51:57
非常受欢迎,是的,你是对的。错过了那一个:D 将更新答案(如果可以的话)) – 2010-05-06 18:58:44