2010-07-20 113 views
1

在我的HTML我有如下标签:如何写这个正则表达式

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

使用正则表达式表达我想删除alt=""

如何将我写这篇文章?

更新

及其对活字。我必须把它写一个像这样:(TEXTA被替换TEXTB)

regex_replace="textA","textB" 
+1

哪种语言? – kennytm 2010-07-20 08:18:50

+0

[你不能用正则表达式解析XHTML](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454);-) – 2010-07-20 08:27:18

回答

5

你为什么不只是找到“ALT =‘’”与'取代它呢?

1

你要求什么正则表达式?直接删除..

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

这不需要一个正则表达式。

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

下面的表达式匹配alt="sometext"

alt=".*?" 

需要注意的是,如果你使用的alt=".*",而是和你有<img alt="sometext src="../images/img.jpg">然后你会匹配整个条款g alt="sometext src="../images/img.jpg"(从alt="到最后的")。

.*表示:尽可能匹配。

.*?表示:尽可能少匹配。

0

regex_replace改性剂应与一个alt属性的任何IMG标记和捕捉一切在组#1中的alt属性前述。然后将匹配的文本替换为组#1的内容,从而有效剥离alt属性。

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

这是你在找什么?