Correspondance de modèle PHP avec preg_match [duplicate]

Sep 04 2020

J'essaye de faire correspondre un certain modèle en Php. Mon code est:

preg_match("/(?P<name>\w+)(?P<digit>\d+)/", $custom)

Mais ça ne marchera pas. Ce que je veux, c'est que le modèle puisse contenir l'un de ces caractères sous n'importe quelle forme (généralement le modèle qui correspond au chemin d'une URL):

(az) (AZ) (0-9) (-)

Que puis-je faire?

Réponses

1 Barmar Sep 04 2020 at 07:49

Si vous souhaitez simplement vérifier s'il contient des lettres, des chiffres, un trait de soulignement ou un trait d'union, vous n'avez pas besoin des groupes de capture. Utilisez simplement un seul jeu de caractères avec un quantificateur. Et ancrez-le avec ^et $pour correspondre à la chaîne entière.

preg_match('/^[-\w]+$/', $custom)