<a class="navbar" title="" href="index.asp?PageAction=VIEWCATS&amp;Category=33">Customer Testimonials</a>
下面是我自己写的匹配上面的表达式,但不正确
String s = "<a class=\"navbar\" title=\"(.*?)\" href=\"index.asp?PageAction=VIEWCATS&amp;Category=(.*?)\">(.*?)</a>"ps: 
我匹配String s = "<title>(.*?)</title>",然后
    System.out.println(m.group(1));//获取被匹配的部分
可以获取<title>和</title>之间正确的结果

解决方案 »

  1.   

    匹配<title>和 </title>之间所有字符记得要 涉及到什么贪婪式(还有保守式?)匹配的,网上查得到的。
      

  2.   


    package Test;
    import java.util.regex.*;
    public class Test2
    {
    public static void f(String input,String regex)
    {
    Pattern p=Pattern.compile(regex);
    Matcher m=p.matcher(input);
    while(m.find())
    {
    System.out.println(m.group());
    for(int i=1;i<=m.groupCount();i++)
    {
    System.out.println(m.group(i));
    }
    System.out.println();
    }
    }
    public static void main(String[] args)throws Exception
    {
    String s="<a class=\"navbar\" title=\"123\" href=\"index.asp?PageAction=VIEWCATS&amp;Category=33\">Customer Testimonials </a>";
    String regex="<a (class=(?=\")?.*?(?=\")?\\s*)? (title=(?=\")?.*?(?=\")?\\s*)? (href=(?=\")?.*?(?=\")?\\s*)>(.*?)</a>";
    f(s,regex);

    }
    }
      

  3.   


    package Test;
    import java.util.regex.*;
    public class Test2
    {
    public static void f(String input,String regex)
    {
    Pattern p=Pattern.compile(regex);
    Matcher m=p.matcher(input);
    while(m.find())
    {
    System.out.println(m.group());
    for(int i=1;i<=m.groupCount();i++)
    {
    System.out.println(m.group(i));
    }
    System.out.println();
    }
    }
    public static void main(String[] args)throws Exception
    {
    String s="<a class=\"navbar\" title=\"123\" href=\"index.asp?PageAction=VIEWCATS&amp;Category=33\">Customer Testimonials </a>";
    String regex="<a (class=(?=\")?.*?(?=\")?\\s*)? (title=(?=\")?.*?(?=\")?\\s*)? (href=(?=\")?.*?(?=\")?\\s*)>(.*?)</a>";
    f(s,regex);

    }
    }