java正则表达式入门问题

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Pattern pat = Pattern.compile("<img (.*)alt*>");
    @SuppressWarnings("resource")
    Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();
    Matcher mat = pat.matcher(input);
    boolean resulet= mat.find();
    if (resulet == true){
        System.out.println("yes, i find it");
    }
    else 
        System.out.println("no");

}

我输入的是 没有匹配到这个,麻烦各位了。

[code="java"]
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class App {

//<img src="img.iknow.bdimg.com/jctuijian/0721/jctj.jpg?t=1405910012" alt=""> 
public static void main(String[] args) {
    String imgRegex = "<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>";
    //String imgRegex = "<img(\\s+.*?)(?:src\\s*=\\s*(?:'|\")(.*?)(?:'|\"))(.*?)/>"
    Pattern pat = Pattern.compile(imgRegex);
    Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();
    Matcher mat = pat.matcher(input);
    boolean resulet = mat.find();
    if (resulet == true) {
        System.out.println("yes, i find it");
    } else
        System.out.println("no");
}

}

[/code]

Pattern pat = Pattern.compile("");
这样就可以了,最后面的*前加.

不过针对具体的要求,最好优化,可以匹配的更准确。

img后面你是不是有个空格哦

[code="java"]
public static void main(String[] args) {

    Pattern pat = Pattern.compile("<img[^>]+src=\"([^\"]+)");
    Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();
    Matcher mat = pat.matcher(input);
    boolean resulet = mat.find();
    if (resulet == true) {
        System.out.println("yes, i find it");
    }
    else System.out.println("no");
}

[/code]

[code="java"]
String regex = "";//"";
Pattern pattern = null;
Matcher matcher = null;
try {
pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println("=====find it.======");
}
} catch (PatternSyntaxException e) {
e.printStackTrace();
System.exit(0);
}

[/code]

package cn.com.wangxiuwei.test;

import java.util.Scanner;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class TestRegex{

public static void main(String[] args) { 

    String imgRegex = "<img[^>]+src=\".*?\"(\\s)+?alt=\".*?\">";   

    Pattern pat = Pattern.compile(imgRegex);   
    Scanner scanner = new Scanner(System.in);   
    String input = scanner.nextLine();   
    Matcher mat = pat.matcher(input);   
    boolean resulet = mat.find();   
    if (resulet == true) {   
        System.out.println("yes, i find it");   
    } else  
        System.out.println("no");   
}   

}

楼主多多写写就会了

最简单的匹配正则 <(img)(\s*[a-zA-Z]*=(['"]).*\3)*>.*</\1>