J'ai une chaîne de caractères qui contient du HTML. Dans cette chaîne, je
souhaite modifier le chemin des images. Pour ce faire, je suis parti sur
preg_replace afin de remplacer tous les src="une_image" par
src="un_chemin_une_image". Là où cela se complique, c'est que je ne veux
pas modifier les src="/une_image" ou les src="http://truc.com/une_image"
Mes recherches sur un moteur de recherche avec négation expression
rationnelle ne m'ont pas menées bien loin.
Je dois probablement mal m'y prendre pour construire cette expression.
Avez-vous des pistes, tutoriel ou autre à m'indiquer ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
J'ai une chaîne de caractères qui contient du HTML. Dans cette chaîne, je souhaite modifier le chemin des images. Pour ce faire, je suis parti sur preg_replace afin de remplacer tous les src="une_image" par src="un_chemin_une_image". Là où cela se complique, c'est que je ne veux pas modifier les src="/une_image" ou les src="http://truc.com/une_image"
Tu peux utiliser les assertions négatives. Ce ne serait pas utile pour tester juste que le chemin ne commence pas pas un « / », mais pour le cas de « http:// » c'est quand même plus simple.
Tester que le caractère suivant n'est pas un / : (?!/)
Tester que la chaîne suivante n'est pas http:// : (?!http://)
Mes recherches sur un moteur de recherche avec négation expression rationnelle ne m'ont pas menées bien loin.
Le mot-clé est « assertion » : http://fr.php.net/manual/fr/regexp.reference.php#regexp.reference.assertions
J'ai une chaîne de caractères qui contient du HTML. Dans cette chaîne, je
souhaite modifier le chemin des images. Pour ce faire, je suis parti sur
preg_replace afin de remplacer tous les src="une_image" par
src="un_chemin_une_image". Là où cela se complique, c'est que je ne veux
pas modifier les src="/une_image" ou les src="http://truc.com/une_image"
Tu peux utiliser les assertions négatives. Ce ne serait pas utile pour
tester juste que le chemin ne commence pas pas un « / », mais pour le
cas de « http:// » c'est quand même plus simple.
Tester que le caractère suivant n'est pas un / :
(?!/)
Tester que la chaîne suivante n'est pas http:// :
(?!http://)
J'ai une chaîne de caractères qui contient du HTML. Dans cette chaîne, je souhaite modifier le chemin des images. Pour ce faire, je suis parti sur preg_replace afin de remplacer tous les src="une_image" par src="un_chemin_une_image". Là où cela se complique, c'est que je ne veux pas modifier les src="/une_image" ou les src="http://truc.com/une_image"
Tu peux utiliser les assertions négatives. Ce ne serait pas utile pour tester juste que le chemin ne commence pas pas un « / », mais pour le cas de « http:// » c'est quand même plus simple.
Tester que le caractère suivant n'est pas un / : (?!/)
Tester que la chaîne suivante n'est pas http:// : (?!http://)