2010-07-20 6 views
1

Dans mon code HTML ci-dessous je tags:Comment écrire cette expression regex

<img src="../images/img.jpg" alt="sometext"/> 

En utilisant l'expression regex Je veux supprimer alt=""

Comment pourrais-je écrire cela?

Mise à jour

Son sur le type mobile. Je dois écrire un comme ceci: (TEXTA est remplacé par textb)

regex_replace="textA","textB" 
+1

Quelle langue? – kennytm

+0

[Vous ne pouvez pas analyser XHTML avec regex] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) ;-) –

Répondre

5

Pourquoi trouvez-vous tout simplement pas « alt = « » » et le remplacer par « »?

1

Quelle regex vous demandez? Supprimer immédiatement ..

$ sed 's/alt=""//' 
    <img src="../images/img.jpg" alt=""/> 
    <img src="../images/img.jpg" /> 

Cela ne nécessite pas une regex.

0
s/ alt="[^"]*"// 
1

L'expression suivante correspond alt="sometext"

alt=".*?" 

Notez que si vous avez utilisé alt=".*" à la place, et vous aviez <img alt="sometext src="../images/img.jpg"> alors vous correspondriez à l'ensemble du strin g alt="sometext src="../images/img.jpg" (de alt=" jusqu'au dernier ").

Le .* signifie: correspondre autant que vous le pouvez. Le .*? signifie: correspondre aussi peu que vous le pouvez.

0

Ce modificateur regex_replace doit correspondre une balise IMG avec un attribut alt et capturer tout ce qui précède l'attribut alt dans le groupe n ° 1. Le texte correspondant est ensuite remplacé par le contenu du groupe n ° 1, ce qui supprime l'attribut alt.

regex_replace='/(<img(?:\s+(?!alt\b)\w+="[^"]*")*)\s+alt="[^"]*"/g','$1' 

Est-ce ce que vous cherchez?