J'ai besoin de code PHP pour détecter si une chaîne contient 4 numéros écrites consécutifs ou plus (0 à 9), comme: ou p>
4 Réponses :
if (preg_match(...put regex here..., $stringToTestAgainst)) {
// ...
}
@Sherif, oui. Notez que vous aurez besoin de mettre la regex dans une chaîne ( "/.../" code>), et vous aurez probablement besoin d'échapper au \ s code> (= > \\ s code>).
Les numéros autorisés sont de zéro à neuf mais pas dix
if (preg_match("/(?:\b(?:(one)|(two)|(three)|(four)|(five)|(six)|(seven)|(eight)|(nine))\b\s*?){4,}/", $variable_to_test_against, $matches)) {
echo "Match was found <br />";
echo $matches[0];
}
EDIT:Added space(s) in the regular expression - thanks to Kobi.
Ne manquez-vous pas les espaces entre les mots?
Une autre option est la suivante:
\b(?:(?:one|two|three|four|five|six|seven|eight|nine|zero)\b\s*?){4}
+1 J'aime beaucoup cette approche. Voici un lien rubulaire pour cela: rubular.com/r/fm4dgwkngg ... Vous avez oublié zéro.
@Mark - merci. Je l'ai testé là aussi, j'ai juste oublié le lien. J'ai zéro, mais ce n'est pas trié :) code>
Oh oui, c'est trié dans l'ordre du clavier. J'aurais dû remarquer que zéro est l'un des exemples de la liaison rubrique. Désolé. :)
Les chiffres peuvent-ils être arbitrairement importants?
Est "cent quarante six" un numéro? Deux nombres? Trois? Quatre?
seuls les nombres simples zéro jusqu'à neuf
Les douze dans votre exemple ne sont-ils pas pertinents? Serait "un quatre six douze" match ou pas?