Est-ce que quelqu'un connaît une expression régulière pour correspondre à une séquence de quatre chiffres? J'ai besoin d'un match sur Ascending (1234), descendant (4321), ou le même (1111). Cela serait strictement ascendant / descendant; 1357 ne devrait pas correspondre. P>
3 Réponses :
correspond à un numéro à 4 chiffres constitué du même chiffre: ou si vous préférez la capture d'assertion: p> ^ : (starting from beginning)
(?=\d{4}$) : (assert there are 4 digits to end)
(?: : (must then match any of these three in a non-capturing group)
(.)\1* : all same digit
| 0?1?2?3?4?5?6?7?8?9? : strictly increasing
| 9?8?7?6?5?4?3?2?1?0? : strictly decreasing
)$ : (to end)
C'est un bon travail. Merci d'avoir enfreint l'expression avec des commentaires.
Comment utiliser la logique similaire pour les alphabets tels que je souhaite vérifier une chaîne y a-t-il strictement croissant / décroissant alphabets? Par exemple ABCD, GHIJ, MNOP, POMN, etc.
Votre réponse devrait travailler pour moi mais je ne sais pas pourquoi cela ne renvoie rien lorsqu'il est appliqué sur 111110123456333399876.
ici c'est:
MDR. Je suppose que je le faisais plus compliqué que j'avais besoin.
public static boolean isDigitAscendingSequence(String ssn) {
return "0123456789".contains(ssn);
}
The same logic with descending sequences
Et peut-être ajouter le zéro à la fin ainsi que le début.
Regex n'est pas la meilleure méthode pour résoudre ce problème.
Est-ce que
1357 code> compte comme une correspondance ascendante? Qu'en est-il de1289 code>? Est0 code> avant1 code> ou après9 code>?