条件:
<img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\"><img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\">
分离后想得到的结果:
String[] sArray={"jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\","jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\"};求思路, 源码, 或者高效方法.

解决方案 »

  1.   

    这里真是个神奇的地方, 我都憋了三天没干出来, 这会居然想到了.....自己贴个解决办法youtData="<img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\"><img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\">";

    String[] tmp=youtData.split("<img");

    List<String> l=new ArrayList<String>();

    Pattern pattern = Pattern.compile("src=\"data:(.*)\">");

    for(int i=0;i<tmp.length;i++)
    {
    Matcher matcher = pattern.matcher(tmp[i]);
    if(matcher.find())
    {
    System.out.println(matcher.group(1));
    }
    }
    求更好的思路.
      

  2.   

    import java.util.LinkedList;
    import java.util.List;public class Hello {
        public static void main(String[] args) throws Exception {
            String[] strs = {
                    "<img src=\\\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\\\">",
                    "<img src=\\\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\\\">"
            };        List<String> result = new LinkedList<String>();        String pattern = "<img src=\\\\\"data:image/(.+)\">";
            for (int i = 0; i < strs.length; ++i) {
                result.add(strs[i].replaceAll(pattern, "$1"));
            }        System.out.println(result);
        }
    }输出
    [jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\, jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\]
      

  3.   

    注意正则里有贪婪与非贪婪模式: +与+?
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Hello {
        public static void main(String[] args) throws Exception {
            String str =
                    "<img src=\\\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\\\"><img src=\\\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\\\">"
            ;        String patternString = "<img src=\\\\\"data:image/(.+?)\">";
            Pattern pattern = Pattern.compile(patternString);
            Matcher matcher = pattern.matcher(str);        while (matcher.find()) {
                System.out.println(matcher.group(1));
            }
        }
    }
    输出
    jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\
    jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\
      

  4.   

    首先楼主的代码是换行的
    所以使用正则时必须添加忽视换行的不爱护(?s)。
    楼主这活我以前经常干,从人家网站抓图片下载到本地。。String btnstr="<img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAOijjEUYRScD1ooooA//Z\">";
    Pattern p=Pattern.compile("(?s)img src=\"data:image/(jpeg.*?)\"");//这里最后一个\不会截取,因为输入字符串中其实本身就没有"\"
    Matcher m=p.matcher(btnstr);
    while(m.find()){
    System.out.println(m.group(1));
    }