我會用這個正則表達式:
(<img[^>]*?) alt=(['"]).*?\2([^>]*?>)
它將在第一和第三結果返回你想要的字符串(一切,但alt="..."
部分)組,你只需要連接它們。
str = str.replaceAll("(<img[^>]*?) alt=([\'\"]).*?\2([^>]*?>)", "$1$3");
請注意,你需要逃脫正則表達式引號內您可以使用它圍住字符串類型:
這是很容易使用String的replaceAll(pattern, replacement)
方法和組佔位符"$n"
替換字符串做直接寫在你的Java代碼中 - 或者兩者兼而有之。
模式說明:
Group 1 part to remove Group 3
|----------||---------------||-------|
(<img[^>]*?) alt=(['\"]).*?\2([^>]*?>)
\____/ \_____/ \/ \____/
1. 2. 3. 1.
[^>]*?
不包含任何>
字符將終止img標籤最短的字符串相匹配。
(['\"])
匹配單引號或雙引號。雙引號被轉義,因此它可以在Java中用作字符串字面分隔符。它被包含在一個組中,以便我們可以在稍後匹配確切的結束報價。
\2
與正確終止字符串屬性值的以前匹配的引號字符匹配。
哪種味道? JS? PHP? –
我想在服務器中通過java web解析HTML代碼。 –
Java web ...?當然,這不是JS? –