2011-11-03 5 views
1

J'ai besoin d'aide avec un motif regex pour correspondre à 2 URLs? Le code que j'ai actuellement correspond à la première URL, mais comment puis-je créer un motif pour correspondre aux deux urls. J'essaie d'obtenir les caractères aléatoires à la fin de chaque URL.Comment faire correspondre 2 URL avec un motif regex

http://www.videozer.com/video/yKKd

http://www.videozer.com/watch_video.php?v=rbgsd

preg_match('/http\:\/\/((www\.)?)videozer\.com\/video\/([a-zA-Z0-9]+)/', $URL, $result); 
+0

Je voudrais faire un modèle séparé, vérifiez les deux et continuez ma vie. –

+2

Il y a déjà eu quelques questions d'URL regex déjà posées, êtes-vous sûr qu'aucune d'entre elles n'a fonctionné pour vous? – deviousdodo

Répondre

3
preg_match('@http://(?:www\.)?videozer\.com/(?:video/|watch_video\.php\?v=)([a-zA-Z0-9]+)@', $URL, $result); 
  1. Utilisez (abc|def) pour correspondre soit la chaîne 'abc' ou 'def'
  2. Utilisez un séparateur différent de sorte que vous ne devez pas échapper /
+0

pouvez-vous m'aider avec celui-ci également '@http: // (?: Www \.) (. *?) \. (?: Com | net | es)/([a-zA-Z0-9] +)/@ 'Je veux le nom de domaine et le nom du chemin après le préfixe com, net, es – bammab

1

Cela devrait le faire:

preg_match('/http\:\/\/((www\.)?)videozer\.com\/(video\/|watch_video\.php\?v=)([a-zA-Z0-9]+)/', $URL, $result); 
0

Vous utilisez simplement les groupes correspondant. You can see the result here.

preg_match('/http\:\/\/((www\.)?)videozer\.com\/(video\/|watch_video\.php\?v=)([a-zA-Z0-9]+)/', $URL, $result); 
Questions connexes