Exprimer une chaîne éliminatoire dans une expression rationnelle
Salut tout le monde :)
Cela fait maintenant longtemps que je cherche à faire une expression rationnelle sans succès. Le principe est relativement simple, je voudrais qu'elle retourne vrai lorsqu'une URL (http://.../) ne contient pas une chaîne tel qu'un domaine précis. Par exemple, je souhaite exclure le domaine "plouf", dans ce cas : - http://www.toto.fr/ => vrai - http://toto.tata.net/ => vrai - http://www.plouf.tk/ => faux Je ne trouve pas comment faire... Je sais faire la négation d'un ensemble (le ^ en première position dans une [classe]), mais pas indiquer que je veux 0 occurence de la chaîne "plouf". (plouf){0} ne marche pas, bien entendu ;) Merci d'avance à celui qui aura une idée de génie :rolleyes: |
je suppose que c'est du php ?
Après une ptite recherche : Code:
Utilisation de la fonction strpos() |
Non il ne s'agit pas de PHP et en fait je suis restreint à une seule expression régulière. Donc pas de "if" et autres tests avant de retourner le résultat, c'est la regexp qui est décisive :confused:
|
M'exerçant depuis déjà quelque temps au regex, c'est une chose que j'ai moi aussi cherché à faire et pour laquelle je n'ai pas encore trouvé la solution :(
Si jamais une bonne âme pouvait nous éclairer :D ... |
J'ai tripatouiller un peu la chose hier soir et j'avoue que je n'ai rien trouvé, je vais continuer à chercher...
|
Quote:
^(?:(?!plouf).)*$\r?\n? J'ai tout bon ????? |
Quote:
(ceci n'est pas un pourrissage de post caché, bon courage dans tes recherches ;) ) |
Merci JoE, on est sur la bonne voie ;)
"^.*(www.|http://|ftp://)(?:(?!plouf.com).)*$" a l'air d'aller bien qu'il laisse passer des trucs du style "http://www.toto.com/bidule?machin=plouf.com" En tout cas pour ce que je fais ça va me suffir, si quelqu'un a une optimisation en vue je suis toujours preneur ! :) |
Qui a inventé ce langage de taré ? :D
|
Attendez 5 min... J'ai un gros doute....
...ce que JoE a dit c'était une connerie ou c'était vraiment une réponse au sujet??? :confused::confused::confused: |
Quote:
Pour l'anecdote, voici ce que peut donner la validation d'une adresse mail en regexp d'après la RFC822 :rolleyes: :p |
Quote:
|
En ces vacances de fin d'année, je me remet aux quelques trucs laissés en suspend...
Donc en fait, ce que je veux faire c'est filtrer toute URL n'étant pas celle du domaine autorisé, soit "plouf.com". Pour le moment j'ai l'expression : "^.*((www.|http://|ftp://)(?:(?!plouf.com).))*$" Elle me cause néanmoins un soucis, voir cet exemple : - Code : [regexp "^.*(www.|http://|ftp://)(?:(?!plouf.com).)*$" "www.toto.com www.plouf.com"] - Valeur retournée : 0 Si une URL contenant mon domaine est en fin de ligne, le résultat du test regexp sera toujours 0 malgré le "www.toto.com" du début... Qui peut voler à mon secours ? :o |
Est-ce que ceci pourrait aider le sieur KnuX ?
Code:
(www.|http://|ftp://)(?:(?!(plouf.com| )).)+ |
Comme vu sur IRC, non ;)
|
All times are GMT +2. The time now is 07:36. |
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.