Question simple REGEX

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Question simple REGEX

par Truc » 02 août 2007, 22:38

oubli pour les "\" le reste je ne savais pas :)

par Hubert Roksor » 02 août 2007, 22:29

Un mot là-dessus :
"#^http://\w+\.monsite.com$#i"
  • n'utilisez pas de guillemets ", ou alors pensez à échapper les $
  • échappez vos backslashes \ !! Vous ne savez pas comment une future version de PHP interprétera \w donc échappez le backslash par sécurité
  • n'oubliez pas le pattern modifier D, sinon le $ représente la fin de la chaîne ou l'avant dernier caractère si le dernier caractère est un saut de ligne
Au final on obtient :
'#^http://\\w+\\.monsite.com$#iD'

par Truc » 02 août 2007, 22:17

"_" est inclus dans "\w" mais pas "-"

Ceci dit il s'agit certainement de pseudo pour les sous-domaines souvent on evite ces caractères, mais c'est à voir :)

par Sékiltoyai » 02 août 2007, 21:44

Maintenant que j'y pense, il manque aussi les _ et - (ils sont acceptés dans les sous-domaines, non ?)

par Truc » 02 août 2007, 20:45

Modération :
djmustru, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

par djmustru » 02 août 2007, 19:58

Ca marche !! merci beaucoup !!

par Truc » 02 août 2007, 19:52

Non, le point va rechercher tous les caractères, une url

Code : Tout sélectionner

http://machin.truc.net/dossier1/index.php?var=monsite.com
passera parfaitement.
Non, il devait y avoit un "." avant "monsite" :wink:
oui effectivement, Sékiltoyai a raison, cela me sort des adresse que j'aimerai pas recupérer du style
Je n'arrive pas a limiter aux adresse qui finissent par ".com"
ben... c'était pas bien compliqué d'ajouter un ".com" en fin

Pour être plus juste:
"#^http://\w+\.monsite.com$#i"
ou sans accents
"#^http://[a-zA-Z0-9]+\.monsite.com$#i"

par Sékiltoyai » 02 août 2007, 19:51

oui, trè!s juste, met ^ en début de pattern et $ en fin de pattern

par djmustru » 02 août 2007, 18:58

oui effectivement, Sékiltoyai a raison, cela me sort des adresse que j'aimerai pas recupérer du style

Code : Tout sélectionner

http://robert.monsite.com/blabla.htm
Je n'arrive pas a limiter aux adresse qui finissent par ".com"

En tout cas merci de votre aide

par Sékiltoyai » 02 août 2007, 18:56

Non, le point va rechercher tous les caractères, une url

Code : Tout sélectionner

http://machin.truc.net/dossier1/index.php?var=monsite.com
passera parfaitement.
Il faut limiter aux caractèrtes alphanumériques en remplacant le point par [a-zA-Z0-9]

par Truc » 02 août 2007, 18:52

quelque chose dans ce style :
"#http://.*\.monsite#"

Question simple REGEX

par djmustru » 02 août 2007, 18:37

Bonjour à tous,

Je désire faire une petite chose en Regex, simple je pense pour un connaisseur.

Donc j'ai un tableau rempli d'Url, et j'aimerai faire un controle sur ses url.

exemple de contenu de mon tableau d'url :

http://monsite.com/blablalle.html
http://fred.monsite.com
http://robert.monsite.com


Je fait donc un 'for each' sur ce tableau et recupere les adresse dans la var $url
j'aimerai garder uniquement les adresses de type http://*.monsite.com

Comment puis-je faire ?

Merci d'avance et bonne journée. :wink: