Expresiones regulares para recuperar cualquier código alfanumérico OTP

Shrimantee Roy:

Estoy tratando de obtener una expresión regular para recuperar el código alfanumérico OTP (longitud del código es decir, tal vez dinámico según la elección del usuario) y debe contener al menos un dígito.

He intentado el siguiente expresión regular: "[a-zA-Z] . [0-9] [a-zA-Z] "

Pero si un carácter especial es que hay en el código debería resultar nulo en lugar recupera los personajes antes y después de que el carácter especial que no se desea.

Algunos mensajes que contiene OTP-muestras en las que se desea la expresión regular para trabajar con éxito:

  1. OTP es **** de TXN de INR 78,90.
  2. **** es la contraseña de una sola vez.
  3. Hola, Su OTP es ****.

Ejemplos de alfanumérico OTP con al menos un dígito:

  1. 78784
  2. aZ837
  3. 987Ny
  4. 19hd35
  5. fc82pl
Emma:

Sería un poco difícil, tal vez esta expresión podría trabajar con una ibandera:

[a-z0-9]*\d[a-z0-9]*

o con límites de las palabras:

(?<=\b)[a-z0-9]*\d[a-z0-9]*(?=\b)

Prueba

import java.util.regex.Matcher;
import java.util.regex.Pattern;

final String regex = "[a-z0-9]*\\d[a-z0-9]*";
final String string = "78784\n"
     + "aZ837\n"
     + "987Ny\n"
     + "19hd35\n"
     + "fc82pl";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
    System.out.println("Full match: " + matcher.group(0));
    for (int i = 1; i <= matcher.groupCount(); i++) {
        System.out.println("Group " + i + ": " + matcher.group(i));
    }
}

La expresión se explica en el panel superior derecha de regex101.com , si desea explorar / Simplificar / modificarlo, y en este enlace , se puede ver cómo iba a coincidir en contra de algunas entradas de ejemplo, si te gusta.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=230468&siteId=1
Recomendado
Clasificación