Tengo una expresión regular que extrae los IBAN alemanes y austriacos. Sin embargo, me acabo de dar cuenta de que el código html a veces tiene un formato extraño.

\b(?:DE|AT)(?:\s?[0-9a-zA-Z]){18}(?:(?:\s?[0-9a-zA-Z]){2})?\b

Por lo tanto, tengo que excluir las coincidencias de IBAN no válidas. En mi demostración, muestro ejemplos que muestran coincidencias incorrectas. ¿Cómo excluiría esto?

0
PParker 21 ene. 2021 a las 18:11

1 respuesta

La mejor respuesta

Parece que solo desea hacer coincidir dígitos. Por lo tanto, puede eliminar a-zA-Z de las clases de personajes. También tenga en cuenta que \s también podría coincidir con una nueva línea, por lo que si no desea que la coincidencia se extienda sobre nuevas líneas, puede hacer coincidir un espacio opcional en su lugar.

\b(?:DE|AT)(?: ?[0-9]){18}(?:(?: ?[0-9]){2})?\b

Consulte la demostración de expresiones regulares actualizada.

1
The fourth bird 21 ene. 2021 a las 15:22