Petit problème avec un expression régulière.

thierry8

WRInaute accro
Bonjour,

j'ai un petit soucis avec une condition.

J'ai celle ci : ((ht|f)tps?://)
qui fonctionne pour autoriser soit :
http:// | https:// | ftp:// | ftps://

Je souhaiterai maintenant avoir l'inverse :
soit dès qu'il n'y a pas :
http:// | https:// | ftp:// | ftps://

J'ai essayé quelque chose comme ça :
([^(ht|f)tps?://])

Mais bof bof...
si vous pouviez m'aider. Merci.
 

thierry8

WRInaute accro
Non cela ne fonctionne pas :

Code:
preg_replace_callback('`\[url=(!(https?://|ftps?://))([^\'\"\n\r\t<]+)\]([^\n\r\t]+)\[/url\]`isU', 'url', $texte);

EDIT: je l'ai remodifier, j'ai pris la mauvaise, là c'est bon
( enfin ça ne marche po, mais c'est l'expression reg. )
 

mumbly

WRInaute discret
Logiquement comme ca ca doit fonctionner:
Code:
if(preg_match("`(ht|f)tps?://`",$url))
echo "ok";
else
echo "pas valide";
 

thierry8

WRInaute accro
J'ai contourné le problème, ça devriat le faire.

Merci de votre aide.

J'ai une autre question cependant.
Si sur mon expression régulière j'applique l'option i (pour insensible à la casse), est-il possible sur une petite partie de mon expression de rendre sensible à la casse ?
 

Discussions similaires

Haut