Come abbinare “qualsiasi carattere” nell’espressione regolare?

Il seguente dovrebbe essere abbinato:

AAA123 ABCDEFGH123 XXXX123 

posso fare: ".*123" ?

Si, puoi. Questo dovrebbe funzionare

  • . = qualsiasi carattere
  • \. = il carattere punto reale
  • .? = .{0,1} = corrisponde a qualsiasi zero o una volta
  • .* = .{0,} = corrisponde a zero zero o più volte
  • .+ = .{1,} = corrisponde a qualsiasi carattere una o più volte

Sì, funzionerà, anche se lo noti . non corrisponderà alla nuova riga a meno che non si passi il flag DOTALL durante la compilazione dell’espressione:

 Pattern pattern = Pattern.compile(".*123", Pattern.DOTALL); Matcher matcher = pattern.matcher(inputStr); boolean matchFound = matcher.matches(); 

Ci sono un sacco di sofisticati test di regex e strumenti di sviluppo, ma se vuoi semplicemente un semplice test harness in Java, eccone uno con cui giocare:

  String[] tests = { "AAA123", "ABCDEFGH123", "XXXX123", "XYZ123ABC", "123123", "X123", "123", }; for (String test : tests) { System.out.println(test + " " +test.matches(".+123")); } 

Ora puoi facilmente aggiungere nuovi test e provare nuovi modelli. Divertiti nell’esplorazione delle espressioni regolari.

Guarda anche

  • regular-expressions.info/Tutorial

Usa il modello . per abbinare qualsiasi carattere una volta,. .* per abbinare qualsiasi carattere zero o più volte .+ per abbinare qualsiasi carattere una o più volte.

No, * corrisponderà a zero o più caratteri. Dovresti usare + , che corrisponde invece a uno o più.

Questa espressione potrebbe funzionare meglio per te: [AZ]+123

Prova la regex. {3,}. Questo corrisponderà a tutti i personaggi si aspettano una nuova linea.