我会用这个正则表达式:
(<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? –