logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 14-03-2024 12:59:44

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

[Résolu]Regex du html !

Salut,
j'aaaaai un petit souci.

Sur mobilizon, ça accepte pas les images externes.

Alors j'utilise du regex pour transformer les images en lien. Et ça marche.

Maintenant. Certaines images sont elles-mêmes des liens. Donc ça marche pas pour ce cas là. Et c'est finalement dur à faire matcher "que pour ça".

Si vous avez une piste : choper <a><img></a> sans manger dans  les [<a></a><img><a></a>] (ça devrait rien matcher du tout, sinon c'est le drame)

Genre faudrait lui dire "prend ce qui commence par <a> et APRÈS TOUT PASSE SAUF </a> avant <img> sans quoi ça correspond pas. Ce genre de "match par la négative" je sais pas faire ? Doit me manquer un bout de syntaxe ^^'

Dernière modification par otyugh (15-03-2024 22:00:10)


virtue_signaling.pngpalestine.png
~1821942.svg

En ligne

#2 15-03-2024 00:04:12

Philou92
Adhérent(e)
Lieu : Hauts de Seine
Distrib. : Debian bookworm
Noyau : Linux 6.1.0-13-amd64
(G)UI : LightDM et Xfce4.18
Inscription : 29-04-2015

Re : [Résolu]Regex du html !

Peut-être en essayant ça : <a>.*?<img>.*?</a>

Tousse antique Ovide !

Hors ligne

#3 15-03-2024 00:14:18

David5647
Membre
Distrib. : Debian Sid
Noyau : 5.15.0-2-amd64
(G)UI : i3wm + des bouts de kde
Inscription : 27-08-2017

Re : [Résolu]Regex du html !

J'me lance tongue

cat tmp.txt


1a Si vous avez une piste : choper <a><img></a> sans manger dans  les [<a>blabla</a><img><a></a>] (ça devrait rien matcher du tout, sinon c'est le drame)
2a <a><img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>
2b <a></a><img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"><a></a>
3a <a> blabla <img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>
3b <a> blabla </a> <img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>
4a <a> <b>blabla</b> <i>test</i> <img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>
4b <a> <b>blabla</b> <i>test</i> </a> <img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"><a></a>
5a <a href="default.asp"><img src="test_3.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>



Avec grep et le mode -P (perl) :

Les lignes capturées:

cat tmp.txt | grep -P '<a[^>]*>([^<]*(?!<\/a>)<)*img[^>]*>[^<]*<\/a>'


1a Si vous avez une piste : choper <a><img></a> sans manger dans  les [<a>blabla</a><img><a></a>] (ça devrait rien matcher du tout, sinon c'est le drame)
2a <a><img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>
3a <a> blabla <img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>
4a <a> <b>blabla</b> <i>test</i> <img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>
5a <a href="default.asp"><img src="test_3.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>


Seulement la capture:

cat tmp.txt | grep -Po '<a[^>]*>([^<]*(?!<\/a>)<)*img[^>]*>[^<]*<\/a>'


<a><img></a>
<a><img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>
<a> blabla <img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>
<a> <b>blabla</b> <img src="test_1.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>
<a href="default.asp"><img src="test_3.gif" alt="HTML tutorial" style="width:42px;height:42px;"></a>



- <a[^>]*> : début du lien
- ([^<]*(?!<\/a>)<)*
    + [^<]* : cherche la prochaine balise (autrement dit : tout les caractètres sauf <)
    + (?!<\/a>) : negative non matching group : non suivi par </a>
    + < : début de la balise suivante
    + (...)* : on répète l'opération jusqu'a trouver la suite
- img[^>]*> : capture le groupe image
- [^<]*<\/a>' : capture tout le reste jusqu'à la fin du lien

Si ça se trouve c'est une usine à gaz mon truc tongue

Hors ligne

#4 15-03-2024 21:59:49

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [Résolu]Regex du html !

Yay !
- Même si entre-temps j'ai découvert que je pouvais juste uploader les url sur mobilizon et insérer les images avec ce lien ensuite - ça reste intéressant ne serais-ce que pour regexper des trucs dans le futur. Merci à toi !

virtue_signaling.pngpalestine.png
~1821942.svg

En ligne

Pied de page des forums