Bonjour,
J'ai un fichier html mal écrit, et souhaite ajouter à toutes les balises img qui ne contiennent pas d'attribut alt un attribut alt="ma description".
Avez-vous une idée de la manière de faire ?
J'ai essayé avec sed mais je n'arrive pas à écrire l'expression régulière: commençant par "<img" suivi de n'importe quoi sauf de ">" et de la chaîne "alt", et finissant par ">".
Ma difficulté et d'exclure une chaîne, j'ai essayé [^>"alt"] mais sans succès ...
Merci de m'aider.
# Google
Posté par doublehp (site web personnel) . Évalué à 0.
Je suis naz en regexp, mais je sais que si je me penche sur ton probleme, il est resolu en moins de 30mn.
Dans http://doublehp.ath.cx/tmp/helloworld.pl(...) tu as quelques exemples.
# perl
Posté par snt . Évalué à 3.
rechercher une balise <img.*>.
Si le resultat de la recherche ne contient pas "alt=" alors remplacer la ligne courante par :
"contenu avant la balise img" + "balise img + alt" + contenu apres la balise img"
cat toto.html | perl -nle 'while (m/(.*)(<img[^>]*>)(.*)/gi) {$a=$1; $c=$3; if ($2!~/alt=/i) {$b=$2 ; $b=~s/>/ alt="madesc">/ ; $_=$a.$b.$c ;} } print' > titi.html
Les gens qui connaissent perl remplaceront sans doute le -nle par -plie ( ca devrait economiser le print de fin et les redirections ) mais je débute alors pardonnez moi.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.