Expression régulière : Tout sauf une chaine

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 : Expression régulière : Tout sauf une chaine

Re: Expression régulière : Tout sauf une chaine

par soycd » 03 oct. 2011, 09:21

Utilise une fonction de callback avec preg_replace_callback()

Re: Expression régulière : Tout sauf une chaine

par jonjojo007 » 02 oct. 2011, 17:22

Up !

Toujours personne qui a la solution ?

Je cherche à dire en expression régulière : Tout sauf une suite de caractère.

Exemple /([^url]+)/ signifie tout sauf u OU r OU l mais moi je veux tout sauf la chaine url.

Merci !

Re: Expression régulière : Tout sauf une chaine

par jonjojo007 » 29 sept. 2011, 20:30

Y'a rien à faire ça fonctionne pas :/ J'arrive pas a lui dire tout sauf la chaine "url"

$chaine = "aze-url-aze";

$chaine = preg_replace('/aze-^(!?url)$-aze/', 'good', $chaine); => match pas
$chaine = preg_replace('/aze-^(!?url)$+-aze/', 'good', $chaine); => Compilation failed
$chaine = preg_replace('/aze-^(!?url)\\$+-aze/', 'good', $chaine); => match pas
$chaine = preg_replace('/aze-^(!?url$)+-aze/', 'good', $chaine); => match pas
$chaine = preg_replace('/aze-[^url]+-aze/', 'good', $chaine); => ça fait différent de u OU r OU l au lieu de différent de url
$chaine = preg_replace('/aze-[^(^url$)]+-aze/', 'good', $chaine); => match pas

Je désespère :/

Re: Expression régulière : Tout sauf une chaine

par popy » 29 sept. 2011, 18:05

\\$ alors. Parce que $ c'est un caractère spécial

Re: Expression régulière : Tout sauf une chaine

par jonjojo007 » 29 sept. 2011, 17:12

Merci mais ça pose un soucis, car je dois dire qu'il doit y avoir plusieurs caractères et mettre un + après le $ fait une erreur. Entourer le tout en parenthèse ne fait pas le remplacement :/

Ce que je veux : tout sauf la chaine url

Voila l'expression entière

$chaine = preg_replace('&\*)\]^(!?url)$\[/url\]&ie', <a href="'\\1">\\3</a> ', $chaine);

Ma chaine de test : [url=http://www.exemple.com/aze[test]aze]test


Actuellement ça ne fait pas le remplacement.

Ce que j'utilise pour l'instant mais qui interdit de mettre des crochets dans le texte du lien c'est ([^\[]) a la place de ^(!?url)$



Merci.

Re: Expression régulière : Tout sauf une chaine

par popy » 29 sept. 2011, 16:13

'/^(!?abc)$/'

Expression régulière : Tout sauf une chaine

par jonjojo007 » 29 sept. 2011, 16:06

Bonjour,

Je cherche à faire une expression régulière ou je recherche tout sauf une chaine de caractère précise.

[^abc] signifie tout sauf a ou b ou c or moi j'aimerai tout sauf la chaine abc.

Est ce que c'est possible à faire ?

En javascript avec les reg exp à priori faut faire ^(!?abc$) mais ça fonctionne pas en php :/

Merci !