Quiero verificar si la entrada del usuario en el lado del servidor. Si el usuario introduce un número 111111 o 22222, que tiene los mismos números, y también si la entrada está en la secuencia como 12345 o 456789.RegEx para verificar si los dígitos en un número son todos iguales o en secuencia
Respuesta
para que coincida mismos dígitos consecutivos:
^([0-9])\1*$
Tenga en cuenta que tiene que escapar de la barra invertida cuando lo pone en un literal de cadena Java, por ejemplo "^([0-9])\\1*$"
.
Para la segunda, debe hacer explícitamente una lista de dígitos consecutivos utilizando el operador |
. La expresión regular sería realmente larga y desagradable con hasta 10 parantheses anidados. Uno tiene que generar esta expresión regular usando un programa. En otras palabras, este es un problema incorrecto para resolver usando expresiones regulares. Sería mucho más simple escribir un ciclo y probar esto.
Este patrón coincidirá si el usuario entra en el mismo dígito:
^(\d)\1*$
\1
coincide con el primer grupo de captura, por lo que el patrón concuerda si ese primer dígito se repite para toda la cadena.
El segundo problema (dígitos consecutivos) es algo más difícil.
^(?:^(?:^(?:^(?:^0?1)?2)?3)4?)?5(?:$|6(?:$|7(?:$|8(?:$|90?))))$|
^(0?1)?2(?:$|3(?:$|4))|^(6?7)?8(?:$|90?)$
es una implementación, asumiendo tres o más dígitos. Sin embargo, dado que el número de combinaciones es pequeña, enumerando (4 + dígitos) también es posible:
^(?:0?123(45?)?|1?23456?|2?34567?|3?45678?|4?56789?|(5?6)?7890?|
(0?1)?2345678?(90$)?|1?23456789?|2?345678(90?)?)$
dicho todo esto, las expresiones regulares no siempre funcionan bien para este tipo de problema. Un método Java para verificar esta secuencia podría ser más limpio.
La segunda expresión regular no coincide con cadenas como "123", "345", etc. Edición: De acuerdo, ahora veo que ha asumido "6 dígitos". –
gracias Susam, vi que 6 dígitos no eran un requisito y edité la publicación para hacerlo más general. – drf
que resuelve si el número comienza con 0 o 1, creo. Para loop fue muy útil. Gracias por cierto. – yyy
Esta vez en Perl, para explicar el segundo caso más sencillo:
perl -nlE 'say "BAD number" if ($_ =~ /^(\d)\1*$/ or "123456789" =~ /$_/)'
Explicación:
- caso 1: Entrada ∈
/(\d)\1*/
idioma: ya presentados ($_ =~ /^(\d)\1*$/
) - el caso 2: cadena "123456789" coincide con la entrada (
"123456789" =~ /$_/
)
- 1. Regex para verificar si un número es par
- 2. pitón reducir comprobar si todos los elementos son iguales
- 3. JS regex: reemplazar todos los dígitos en la cadena
- 4. cómo verificar si 2 archivos son iguales usando .NET?
- 5. ¿Cómo comparar esa secuencia de dobles son todos "aproximadamente iguales" en Java?
- 6. Verificar si falta el número en la secuencia
- 7. Eliminar dígitos en Python (Regex)
- 8. ¿Cómo ordenar los dígitos en un número?
- 9. Cocoa: compruebe si dos NSArrays son iguales
- 10. Comprobando si todos los valores en una matriz numpy son iguales
- 11. Java REGEX para que coincida con un número exacto de dígitos en una cadena
- 12. iOS: ¿cómo verificar si una cadena tiene solo dígitos?
- 13. Comprueba si dos vectores son iguales
- 14. Regex para verificar si los primeros 2 caracteres de una cadena son alfabetos
- 15. Compruebe si todos los elementos son los mismos en una lista
- 16. LINQ: compruebe si dos listas son iguales
- 17. Regex para encontrar un número en una cadena
- 18. Verificar si la cadena contiene solo dígitos
- 19. Mathematica: determina si todos los enteros en una lista son menores que un número.
- 20. Uno o dos dígitos numéricos Regex
- 21. Comprobando si todos los elementos en una lista son únicos
- 22. Regex para hacer coincidir los dígitos de longitud específica
- 23. PHP: Función incorporada para verificar si dos valores de matriz son iguales (Ignorar el orden)
- 24. ¿Hay alguna manera de verificar si dos elementos DOM son iguales?
- 25. Cómo determinar si todos los caracteres de una cadena son iguales
- 26. ¿Cómo comprobar si todos los elementos de una matriz son los mismos, en matlab?
- 27. Solución elegante para verificar si dos fechas son iguales, en Linq (donde la segunda fecha NO es un parámetro)
- 28. Use jQuery para verificar si todos los div están ocultos
- 29. ¿Cómo puedo verificar si todos los elementos de una matriz son idénticos en Perl?
- 30. ¿Cuál es la manera más rápida de verificar si hay dígitos duplicados de un número?
¿Qué hay de 8910? ¿Es eso una 'secuencia'? –
¿Qué pasa con 2335777, es eso "en secuencia"? – Cephalopod