Je suis en train d'utiliser preg_match()
en PHP pour faire un match de modèle pour les numéros 4 chiffres qui ont ce modèle:Comment puis-je rechercher des numéros en double l'un à côté de l'autre?
0033
1155
2277
Fondamentalement, les 2 premiers chiffres sont les mêmes et les 2 derniers chiffres sont les mêmes, mais les 4 chiffres ne sont pas tous identiques.
Est-ce que la fonction correcte est d'utiliser preg_match()
? Ou devrais-je simplement les séparer et faire comme ça?
Pour l'anecdote, essayer d'utiliser des expressions régulières est assez difficile. Cela peut probablement être fait, mais je ne peux pas imaginer à quoi ressemblerait le résultat. Ayant besoin que les deux groupes diffèrent dans leurs chiffres récurrents, il est vraiment difficile d'écrire une regex. Il vaut mieux utiliser une autre solution. Si vous pouviez vous passer de cette exigence, '(\ d) \ 1 (\ d) \ 2' fonctionnerait probablement. – Joel
@Joel Puis-je demander ce que \ 1 et \ 2 signifient? Parce que si j'avais un numéro 113022 il correspond à (\ d) \ 1 [30] + (\ d) \ 2. Pourquoi? Je pensais \ 1 et \ 2 étaient la position du nombre ... – John
Ce sont des références de groupe de capture. Cela vous permet de spécifier qu'un groupe de capture doit être doublé ou triplé ou ce que vous voulez. Vous pouvez l'empêcher d'accepter une entrée de ce type en ajoutant des limites '^ (\ d) \ 1 (\ d) \ 2 $'. Cela limitera vos entrées à "mots" à 4 chiffres. – Joel