我有一個包含大量圖像標記的Html字符串,我需要獲取標記並對其進行更改。例如:java:正則表達式
String imageRegex = "(<img.+(src=\".+\").+/>){1}";
String str = "<img src=\"static/image/smiley/comcom/9.gif\" smilieid=\"296\" border=\"0\" alt=\"\" />hello world<img src=\"static/image/smiley/comcom/7.gif\" smilieid=\"294\" border=\"0\" alt=\"\" />";
Matcher matcher = Pattern.compile(imageRegex, Pattern.CASE_INSENSITIVE).matcher(msg);
int i = 0;
while (matcher.find()) {
i++;
Log.i("TAG", matcher.group());
}
結果是:
<img src="static/image/smiley/comcom/9.gif" smilieid="296" border="0" alt="" />hello world<img src="static/image/smiley/comcom/7.gif" smilieid="294" border="0" alt="" />
,但它不是我想要的,我想要的結果是
<img src="static/image/smiley/comcom/9.gif" smilieid="296" border="0" alt="" />
<img src="static/image/smiley/comcom/7.gif" smilieid="294" border="0" alt="" />
有什麼錯我的正則表達式?
我能請您看看這個答案:http://stackoverflow.com/a/1732454/83109 – 2012-07-10 13:14:25
有什麼不妥,雖然regexing出僅標籤? – 2012-07-10 13:20:32
是的,有。問題在於HTML不是常規語言,所以它不適合用正則表達式進行分析。有時候你可以讓它工作在一個緊急狀態(這可能是其中一種情況),但有點像用舊鞋釘釘子。它可能會完成工作,但它並不是真正的工具。 – 2012-07-10 13:23:50