String str = "<input type='image' src='http://p15.freep.cn/p.aspx?u=v20_p15_p_0805240112306914_0.jpg'";
Pattern p = Pattern.compile("src=(.*?)'");
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group());
}为什么匹配不到啊

解决方案 »

  1.   

     System.out.println(str.replaceAll("src=(.*?)'", " "));
    看下你
      

  2.   

    Pattern p = Pattern.compile("src='(.*?)'");
      

  3.   

    匹配啊,输出的结果是:src='
    *?表示出现0次或多次,不是恰好出现了0次了吗?
      

  4.   

    我输出的结果要是 http://p15.freep.cn/p.aspx?u=v20_p15_p_0805240112306914_0.jpg
      

  5.   

     String str = "<input type='image' src='http://p15.freep.cn/p.aspx?u=v20_p15_p_0805240112306914_0.jpg'";
            Pattern p = Pattern.compile("src='(.*?)'");
            Matcher m = p.matcher(str);
            while (m.find()) {
                System.out.println(m.group(1));
            }
      

  6.   


    为什么这样就匹配不到了呢 Pattern p = Pattern.compile("src=(.*?)'");
    Matcher m = p.matcher(str);
    while (m.find()) {
    System.out.println(m.group(1));
    }
      

  7.   


    public class Test1 {
    public static void main(String[] args) {
    String str = "<input type='image' src='http://p15.freep.cn/p.aspx?u=v20_p15_p_0805240112306914_0.jpg'";
            Pattern p = Pattern.compile("src=(.*)'");
            Matcher m = p.matcher(str);
            while (m.find()) {
                System.out.println(m.group());
            }
    }
    }输出结果src='http://p15.freep.cn/p.aspx?u=v20_p15_p_0805240112306914_0.jpg'
      

  8.   

    public class Test3 {    public static void main(String[] args) {
            String str = "<input type='image' src='http://p15.freep.cn/p.aspx?u=v20_p15_p_0805240112306914_0.jpg' " +
                    "src='http://p15.freep.cn/p.aspx?u=v20_p15_p_0805240112306914_0.jpg'";
            Pattern p = Pattern.compile("src='([^']*)'");
            Matcher m = p.matcher(str);
            while (m.find()) {
                System.out.println(m.group());
            }
        }
    }表达式不能使用 src=(.*)' 这种样子的,这种是匹配最大的,属于贪婪型的,能匹配得多就多匹配一点。
    采用这个,在上面的字符串中并不能正常工作。可以改成 src='(.*?)' 这种样子的,可以进一步优化成 src='([^']*)'
      

  9.   

    Pattern p = Pattern.compile("src=(.*?)'");
            Matcher m = p.matcher(str);
            while (m.find()) {
                System.out.println(m.group(1));////是group(1),不是group(0);
            }
      

  10.   

    尽量不要用(.*?)
    Pattern p = Pattern.compile("src='([^']+)'",Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
    用这个正则可以得到你要的结果,