我想用正则表达式匹配一个insert的SQL语句,能够自动地将变量赋给对应的字段,比如
SQL=“insert into table(item1,item2,item3) values(:item1,:item2,:item3)”
map.put(item1,"111")
map.put(item2,"222")
map.put(item3,"333") 我想用正则表达式自动的将SQL语句中的:item1,:item2,:item3替换成map中对应的“111”,"222","333" 请问我该怎么写正则表达式的匹配语句和 对应的方法。
SQL=“insert into table(item1,item2,item3) values(:item1,:item2,:item3)”
map.put(item1,"111")
map.put(item2,"222")
map.put(item3,"333") 我想用正则表达式自动的将SQL语句中的:item1,:item2,:item3替换成map中对应的“111”,"222","333" 请问我该怎么写正则表达式的匹配语句和 对应的方法。
可以搜出对应的 1 2 3 (?<=:)[a-zA-Z]+[0-9]搜出变量名但不知道楼主具体时想怎么做?
import java.util.regex.*;
public class qdb
{
public static void method(String s,String regex)
{
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
while(m.find())
{
System.out.println(m.group());
s=m.group(1)+m.group(1)+m.group(1);
System.out.println(s);
}
}
public static void main(String[] args)
{
String s="item1 item2 item3 item44";
String regex="item(\\d+)";
qdb.method(s, regex);
}
}
照着你的要求写了个~但是比较烦琐