嗨,我正在尝试在java中使用replaceAll,来删除图像的一些html内容:
这是我的输入
String html = ' asd<i> 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");
在这种情况下,输出将是:
asd<i> qwe qwe<u>qweqwe</u></i><u>wqeqwesd.Image Url: urldirectionstring</u>
关于java - 替换正则表达式变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42439931/