java - 替换正则表达式变量

标签 java html regex replaceall

嗨,我正在尝试在java中使用replaceAll,来删除图像的一些html内容:

这是我的输入

String html = '&nbsp;asd<i>&nbsp;qwe qwe<u>qweqwe</u></i><u>wqeqwesd.<img alt="vechile" src="urldirectionstring" style="float:left; height:190px; width:400px" /></u>';

所以我想做的是替换 <img ...> 的所有内容然后返回替换:

"Image Url: urldirectionstring";

所以只要替换标签img,其余的,就让它,只碰这个标签,现在我有了这个,但还不够;

String replaceImg = html.replaceAll("<img[^>]*/>","Image Url: "+$srcImgdirection);

因此,如您所见,我不知道如何在替换中将 urldirectionstring 作为变量获取。

----------- 最后编辑 -----------

我发现这个正则表达式可以获取 urlstringdirection,但现在我不知道如何仅替换它并添加文本:

String replaceImg = html.replaceAll("<img.*src="(.*)"[^>]*/?>","Image Url: "+$srcImgdirection);

最佳答案

您可以使用:

String replaceImg = html.replaceAll(".*<img.*src=\"(.*?)\".*", "Image Url: $1");

这会替换整个字符串,输出将仅为 Image Url: urldirectionstring (请注意, $1 包含表达式中匹配的字符串,但仅包含括号内的部分 - 基本上每对括号都会创建稍后可以引用的“组”;由于正则表达式仅包含一对,即第一组,所以你可以用 $1 引用它)

如果您只想替换 img 标签并保持其他标签不变,您可以使用:

String replaceImg = html.replaceAll("<img.*src=\"(.*?)\"[^>]*/?>", "Image Url: $1");

在这种情况下,输出将是: &nbsp;asd<i>&nbsp;qwe qwe<u>qweqwe</u></i><u>wqeqwesd.Image Url: urldirectionstring</u>

关于java - 替换正则表达式变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42439931/

相关文章:

java - 高效的 Websocket 数据处理

java - intellij IDEA中如何打开或调用regexTester插件

html - HTML5 是有效的 XML 吗?

css - 填充屏幕宽度

java - 选择子字符串的正则表达式

java - 循环是否每次都需要更长的时间来执行?

java - 使用存储过程、JPA 和 Hibernate 保留到 SQL Server 2008

当我执行这个 go 代码时,html 代码显示没有 css,但是当我直接在浏览器中打开它时,它显示 html 和 css 都很好

Java 正则表达式在多个定界符上拆分,包括其他定界符的子字符串

ruby - 否定前瞻忽略电子邮件线程中的样板文本