判断一个字符串中,是否包含<a style='cursor:hand;color:black' onclick='funNext(1274410601973);'>下一页</a>其中的 1274410601973 是动态变化的,我觉得应该用正则表达式来解决这个问题。

解决方案 »

  1.   

    for example
    String s = "<a style='cursor:hand;color:black' onclick='funNext(1274410601973);'>下一页</a>";
    String regex = ".*?<a style='cursor:hand;color:black' onclick='funNext\\(\\d+\\);'>下一页</a>.*";
    System.out.println(s.matches(regex));
      

  2.   

    如果要忽略大小写
    String s = "<a style='cursor:hand;color:black' onclick='funNext(0000);'>下一页</a>"; //0000任意改变,不知道这个任意改变只限数字还是什么?
    String regex = "(?i).*?<a style='cursor:hand;color:black' onclick='funNext\\(\\d+\\);'>下一页</a>.*"; //这里限制的任意改变是数字类型的,如果有其他需求,可以修改\\d+为.*?什么的
    System.out.println(s.matches(regex));
      

  3.   


    我这里不但需要判断指定的字符中,是否包含,我说的<a style='cursor:hand;color:black' onclick='funNext(1274410601973);'>我还需要把它的值,具体提取出来
    public static String getFunNext(String orginHtml)
    {
    String oldUrl = "";
    String regex = ".*?<a style='cursor:hand;color:black' onclick='funNext\\(\\d+\\);'>下一页</a>.*";
    if (orginHtml.matches(regex))
    {
    // 这里怎么提前到具体的呢?
    oldUrl = "";
    }
    return oldUrl;
    }
      

  4.   


    这里的 funNext 里面的是数字
      

  5.   

    是抽出数字部分还是抽出真个<a...>...</a>字符串?String regex = "(?i)(.*?)(<a style='cursor:hand;color:black' onclick='funNext\\((\\d+)\\);'>下一页</a>)(.*)";
    if (orginHtml.matches(regex))
    {
        oldUrl = orginHtml.replaceAll(regex, "$3"); //抽出数字部分
                                                          //如果是抽出整个<a...>...</a>就改成$2
    }
    return oldUrl;
      

  6.   


    抽出整个a,你看看我给你发信了,你加我一下QQ吧
      

  7.   

    String regex = "(?i)(.*?)(<a style='cursor:hand;color:black' onclick='funNext\\((\\d+)\\);'>下一页</a>)(.*)";
    if (orginHtml.matches(regex))
    {
        oldUrl = orginHtml.replaceAll(regex, "$2"); //抽出整个a
                                                          
    }
    return oldUrl;平时很少用QQ,有问题在这里问吧
      

  8.   


    public static String getFunNext(String orginHtml)
    {
    String oldUrl = "";
    // String regex = ".*?<a style='cursor:hand;color:black' onclick='funNext\\(\\d+\\);'>下一页</a>.*";
    String regex = "(?i)(.*?)(<a style='cursor:hand;color:black' onclick='funNext\\((\\d+)\\);'>下一页</a>)(.*)";
    if (orginHtml.matches(regex))
    {
    oldUrl = orginHtml.replaceAll(regex, "$2"); // 抽出数字部分
    // 如果是抽出整个<a...>...</a>就改成$2
    }
    return oldUrl;
    }我这样试验了,if语句不成立,oldUrl是空值,
      

  9.   

    不会啊
    String orginHtml = "00000000000000000<a style='cursor:hand;color:black' onclick='funNext(1274410601973);'>下一页</a>999999999999999";
    String oldUrl = "";
    String regex = "(?i)(.*?)(<a style='cursor:hand;color:black' onclick='funNext\\((\\d+)\\);'>下一页</a>)(.*)";
    if (orginHtml.matches(regex))
    {
        oldUrl = orginHtml.replaceAll(regex, "$2"); //测试没问题
        System.out.println(oldUrl);
    }是不是你的orginHtml里含有换行符什么的?
    改成这样试试看(忽略换行符)
    String regex = "(?is)(.*?)(<a style='cursor:hand;color:black' onclick='funNext\\((\\d+)\\);'>下一页</a>)(.*)";
      

  10.   

    另外还要考虑到编码问题,因为“下一页”是多字节编码的,所以你要保证传入的orginHtml的编码一致才行