2010-11-19 14 views

Respuesta

10

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.

+0

Creo Your'e derecho – grmartin

+0

@ javamonkey79: Don.. ¿No tienes que hacerlo no codicioso usando signos de interrogación? – thejh

+0

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

0

Es ". ? A.? B. ".?. Si utiliza sin que coincide con cadena entera porque (punto) significa "cualquier carácter", * significa 0 - infinito multiplicado

+0

Pensé '¿??' en java solo coincide una vez o no coincide. ¿No es el jh más correcto? – javamonkey79

+0

No funciona: http://ideone.com/lY8ya – thejh

0
Pattern p = Pattern.compile(".*?A.*?B.*"); 
Matcher m = p.matcher(str); 
if (m.matches()) { 
... 
Cuestiones relacionadas