日期:2014-05-20  浏览次数:20799 次

java请教 如何用正则获取字符串
我有一串字符串,我想要获取其中的href="adkjfjadjfa" 这段字符串,这样的字符串,在整个字符串中可能还有好几个,怎么用正则把它们匹配出来?注意:href= 这后面可能是" 也可能是' 
下面是我写的,只能匹配一段href="XXXXXXXX"; 并且只能获取双引号类型的

import java.util.regex.*;

public class Test {
public static void main(String[] args) {
String ptn = ".*href=(.*\")";
Pattern p = Pattern.compile(ptn, Pattern.DOTALL);
String s = "asdfadfaadf-href=\"1alkjdflkajdfjalkdfj1\"adfadfhref=\'1alkjdflkajdfjalkdfj1\'ad"; // \" 转义 ,表示"
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println("href="+m.group(1));
} else {
System.out.println("not match");
}
}
}

结果只匹配到一个:
href="1alkjdflkajdfjalkdfj1"

------解决方案--------------------
这是自己已经做出来了?
------解决方案--------------------
问题解决了?
------解决方案--------------------
 String  regec= "(href=[\"\'].*?[\"\'])";
------解决方案--------------------

static String ptn = "href=[\"
------解决方案--------------------
\'](.+?)[\"
------解决方案--------------------
\']";
    static Pattern p = Pattern.compile(ptn);
    public static void find(String str){
        Matcher m = p.matcher(str);
        while (m.find()) {
            System.out.println(m.group(1));          
        }
    }