Se puede usar una cadena de caracteres para buscar un sub-canal que coincida con una plantilla. El contenido de la cadena de caracteres se puede combinar con la plantilla 0, 1 o más.
Algunos ejemplos de uso:
- Asegúrese de que la fecha que haya leído coincida con la plantilla uuuu / hh / ee
- Asegúrese de que su número de identificación esté compuesto de 8 números, líneas y letras
- Compruebe correctamente que la dirección de correo electrónico se escribió correctamente.
- Asegúrese de que las contraseñas cumplen ciertos requisitos.
- La URL es válida.
- ¿Cuántas veces se repite una secuencia de caracteres en un texto?
- ...
Se busca la plantilla de izquierda a derecha.
Ejemplo:
La expresión regular "010" en la expresión "010101010" Aparece 2 veces : "010101010"
Finalizará la cadena. Debe aparecer al final.
Debemos usar en Java \\ Por ejemplo, debemos escribir \ w para usar \\ w. \\\\ Debemos escribir el \ carácter.
Cuantificadores
Usaremos java.util.regex para la expresión regular. Allí aparecerán las clases Pattern y Matcher y PatternSyntaxExceptions.
Patter: Un objeto de esta clase lo guardará en la expresión regular. La expresión regular (tipo de cadena) tiene un método Compile (String regex) para convertir a un objeto Pattern.
Matcher: Compara o compara la cadena y las expresiones regulares. Se ha implementado el método de coincidencias (entrada CharSequence). El resultado será verdadero o falso. El método find () devolverá la cadena que la cadena adjunta a la plantilla.
Ejemplos:
1. Asegúrar que la cadena String tenga una cadena que coincida con la plantilla "abc".
Pattern pat = Pattern.compile("abc");
Matcher mat = pat.matcher(cadena);
if (mat.matches()) {
System.out.println("SI");
} else {
System.out.println("NO");
}
2. Determina si la cadena String tiene una cadena que coincide con la plantilla "abc"
Pattern pat = Pattern.compile(".*abc.*");
Matcher mat = pat.matcher(cadena);
if (mat.matches()) {
System.out.println("SI");
} else {
System.out.println("NO");
}
También podemos usar el find:
Pattern pat = Pattern.compile("abc");
Matcher mat = pat.matcher(cadena);
if (mat.find()) {
System.out.println("Similar");
} else {
System.out.println("No similar");
}
3. Asegúrade que la cadena String empiece por "abc".
Pattern pat = Pattern.compile("^abc.*");
Matcher mat = pat.matcher(caden);
if (mat.matches()) {
System.out.println("Similar");
} else {
System.out.println("No similar");
}
4. Asegúra que la cadena String comienza con "abc" o "Abc".
Pattern pat = Pattern.compile("^[aA]bc.*");
Matcher mat = pat.matcher(cadena);
if (mat.matches()) {
System.out.println("SI");
} else {
System.out.println("NO");
}
5. Asegúra que la longitud de la cadena String sea al menos 5 letras corta o estrecha y hasta 10.
Pattern pat = Pattern.compile("[a-zA-Z]{5,10}");
Matcher mat = pat.matcher(cadena);
if (mat.matches()) {
System.out.println("SI");
} else {
System.out.println("NO");
}
6. Asegúra que la cadena String no comience con un número.
Pattern pat = Pattern.compile("^[^\\d].*");
Matcher mat = pat.matcher(cadena);
if (mat.matches()) {
System.out.println("SI");
} else {
System.out.println("NO");
}
7. Asegúra que la cadena String no termine con un número
Pattern pat = Pattern.compile(".*[^\\d]$");
Matcher mat = pat.matcher(cadena);
if (mat.matches()) {
System.out.println("SI");
} else {
System.out.println("NO");
}
8. Asegúra que la cadena String esté compuesta de caracteres a o b.
Pattern pat = Pattern.compile("(a|b)+");
Matcher mat = pat.matcher(cadena);
if (mat.matches()) {
System.out.println("SI");
} else {
System.out.println("NO");
}
9. Asegúra que la cadena es seguida por un carácter String 1, que no está en el número 2
Pattern pat = Pattern.compile(".*1(?!2).*");
Matcher mat = pat.matcher(cadena);
if (mat.matches()) {
System.out.println("SI");
} else {
System.out.println("NO");
}
Adibidea: Validación de correo electrónico regular.válido
package ejemplo1;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Ejemplo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String email;
System.out.print("Introduce tu correo electronico: ");
email = sc.nextLine();
Pattern pat = Pattern.compile("^[\\w-]+(\\.[\\w-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
Matcher mat = pat.matcher(email);
if(mat.find()){
System.out.println("Dirección válida");
}else{
System.out.println("Dirección no válida");
}
}
}
Explicación. Expresión regular utilizada:
"^[\\w-]+(\\.[\\w-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"
Explicación de cada sección:
Expressiones regulares con la clase String. Matches y splits. String.matches (regex)
if (cadena.matches(".*1(?!2).*")) {
System.out.println("SI");
} else {
System.out.println("NO");
}
String.split(regex)
Alternativa de StringTokenizer para dividir cadenas. La cadena se divide por la expresión regular. La expresión regular no formará parte del resultado.
Ejemplo 1:
String str = "blanco-rojo:amarillo.verde_azul";
String [] cadena = str.split("[-:._]");
for(int i = 0; i<cadena.length; i++){
System.out.println(cadena[i]);
}
Resultado:
blanco
rojo
amarillo
verde
azul
Ejemplo 2:
String str = "esto es un ejemplo de como funciona split";
String [] cadenas = str.split("(e[s|m])|(pl)");
for(int i = 0; i<cadenas.length; i++){
System.out.println(cadenas[i]);
}
Salida:
to
un ej
o de como funciona s
it