如何从字符串中动态查找别名和列名,以便字符串格式不会根据条件修复其更改。所以我们的目标是获得我们可以在 SQL WHERE 子句中编写的所有可能机会的字符串。
例子
String MyString1="pro.itemDate<'2/02/2018'and pro.itemRate=0";
String MyString2="a.supplier_name='IBM'and a.offices=8;"
String MyString3="a.itm<>b.itm";
String MyString3="a.itm IN ('1','2')"
输出
pro.itemDate,pro.itemRate
a.supplier_name,a.offices;
a.itm,b.item;
a.itm;
您可以使用简单的正则表达式来获取所有匹配项
[^\s]+\.[^\s=]+
我假设你有像“pro.itemDate=<'2/02/2018'> and pro.itemRate=0”和“a.supplier_name='IBM' AND a.offices=8”这样的字符串
java中未经测试的示例实现
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches {
public static void main( String args[] ) {
// String to be scanned to find the pattern.
String line = "pro.itemDate=<'2/02/2018'> and pro.itemRate=0";
String pattern = "[^\\s]+\\.[^\\s=]+";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
while (m.find( )) {
System.out.println("Found value: " + m.group(0) );
}else {
System.out.println("NO MATCH");
}
}
}
编辑以在模式中转义 \
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句