一个关于正则的有关问题

一个关于正则的问题

Pattern p = Pattern.compile("and .+?\\.??.+?[.]??=\\?");
Matcher m = p.matcher("select * from bbb1 bxs1 where 1=1 and bxs1.id =  (select * from cc1 where 1=1 and cc1.id=? and cc1.name=?)");
int i=0;
while (m.find()) {
String value = m.group();
System.out.println(value);
i++;
}
//现在输出结果是
//and bxs1.id =  (select * from cc1 where 1=1 and cc1.id=?
//and cc1.name=?

//期望结果是
//and cc1.id=?
//and cc1.name=?

------解决思路----------------------

package net.****.question;

/*
 * //现在输出结果是
//and bxs1.id =  (select * from cc1 where 1=1 and cc1.id=?
//and cc1.name=?
 
//期望结果是
//and cc1.id=?
//and cc1.name=?
 */
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
public static void main(String[] args) {
String regex = "and\\s+[\\w\\d]+\\.[\\w\\d]+\\s*=\\s*\\?";
Pattern p = Pattern.compile(regex);
String input = "select * from bbb1 bxs1 where 1=1 and bxs1.id =  (select * from cc1 where 1=1 and cc1.id=? and cc1.name=?)";
Matcher m = p.matcher(input);
// System.out.println(m.find());
while (m.find()) {
System.out.println(m.group());
}
}
}


------解决思路----------------------
引用:

package net.****.question;

/*
 * //现在输出结果是
//and bxs1.id =  (select * from cc1 where 1=1 and cc1.id=?
//and cc1.name=?
 
//期望结果是
//and cc1.id=?
//and cc1.name=?
 */
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
public static void main(String[] args) {
String regex = "and\\s+[\\w\\d]+\\.[\\w\\d]+\\s*=\\s*\\?";
Pattern p = Pattern.compile(regex);
String input = "select * from bbb1 bxs1 where 1=1 and bxs1.id =  (select * from cc1 where 1=1 and cc1.id=? and cc1.name=?)";
Matcher m = p.matcher(input);
// System.out.println(m.find());
while (m.find()) {
System.out.println(m.group());
}
}
}

学习了