如何在java中找到匹配的查询字符串并替换?

时间:2016-04-15 16:05:51

标签: java regex string

我从wordpress博客获取RSS源,我在字符串中获取缩略图。以下是我得到的样本

  

< img src =“http://www.example.com/some-image.jpg?resize=50%2C50”   class =“attachment-thumbnail wp-post-image”alt =“SomeImage”   风格=“保证金:0像素;” />

我需要从图片源中删除“?resize = 50%2C50 ”。但问题是我无法在我的代码中硬编码,因为大小可能不会保持不变。此外,属性的放置顺序可能会改变

如何简单地删除与此模式匹配的任何内容,以便始终将输出作为

  

< img src =“http://www.example.com/some-image.jpg”   class =“attachment-thumbnail wp-post-image”alt =“Some Image”   风格=“保证金:0像素;” />

提前致谢

2 个答案:

答案 0 :(得分:0)

RegEx捕获您的图片:src=(".+\.jpg)(\?resize\S+") 然后可以用src=\$1"

替换
    String url="<img src=\"http://www.example.com/some-image.jpg?resize=50%2C50\" class=\"attachment-thumbnail wp-post-image\" alt=\"SomeImage\" style=\"margin:0px;\" />";
    final String regex="src=(\".+\\.jpg)(\\?resize\\S+\")";
    url = url.replaceFirst(regex, "src=$1\"");

    System.out.println(url);

答案 1 :(得分:0)

如果我理解正确,你只需要通向参数的路径,所以:

String str = "<img src=\"http://www.example.com/some-image.jpg?resize=50%2C50\" class=\"attachment-thumbnail wp-post-image\" alt=\"SomeImage\" style=\"margin:0px;\" />";
System.out.println(str.replaceFirst("(\\?\\S[^\"]+)", ""));

这将输出:

<img src="http://www.example.com/some-image.jpg" class="attachment-thumbnail wp-post-image" alt="SomeImage" style="margin:0px;" />