¿Cuál es el equivalente de Java RegEx a la cláusula SQL LIKE de "% A% B%"?¿Cuál es el equivalente de Java RegEx a la cláusula SQL LIKE de "% A% B%"?
Bastante pregunta básica, estoy aprendiendo el sabor Java Regex.
¿Cuál es el equivalente de Java RegEx a la cláusula SQL LIKE de "% A% B%"?¿Cuál es el equivalente de Java RegEx a la cláusula SQL LIKE de "% A% B%"?
Bastante pregunta básica, estoy aprendiendo el sabor Java Regex.
creo que este es el patrón sabia: .*A.*B.*
Voy a editar y añadir más para las llamadas específicas Java.
editar # 1:
//simplest match
"".matches(".*A.*B.*");
String foo = "";
foo.matches(".*A.*B.*");
editar # 2: Desde el API docs:
Pattern p = Pattern.compile(".*A.*B.*");
Matcher m = p.matcher("your-string-here");
boolean b = m.matches();
Además, me gustaría echar un vistazo a RegexBuddy, no es gratis, pero tiene medios para generar fragmentos para muchos idiomas, prueba & parse regex, etc.
Es ". ? A.? B. ".?. Si utiliza sin que coincide con cadena entera porque (punto) significa "cualquier carácter", * significa 0 - infinito multiplicado
Pensé '¿??' en java solo coincide una vez o no coincide. ¿No es el jh más correcto? – javamonkey79
No funciona: http://ideone.com/lY8ya – thejh
Pattern p = Pattern.compile(".*?A.*?B.*");
Matcher m = p.matcher(str);
if (m.matches()) {
...
Creo Your'e derecho – grmartin
@ javamonkey79: Don.. ¿No tienes que hacerlo no codicioso usando signos de interrogación? – thejh
No estoy seguro. Mi interpretación del SQL como es "cualquier carácter, luego A, luego cualquier carácter, luego B, luego cualquier carácter". Si tienes una buena explicación para los no codiciosos Me encantaría leer y votar :) :) – javamonkey79