替换正则表达式变量

时间:2017-02-24 13:33:16

标签: 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);

1 个答案:

答案 0 :(得分:1)

您可以使用:

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

这将替换整个字符串,输出只有Image Url: urldirectionstring(注意$1包含表达式中匹配的字符串,但只是括号内的部分 - 基本上每对括号都创建& #34;群组&#34;可以在以后引用;由于正则表达式只包含一对,因此它是第一个群组,因此您可以使用$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>