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

有关正则表达式问题
Java code

Matcher m = Pattern.compile("<inputname=\"title\"type=\"hidden\"id=\"title\"value=\"(.*?)\"/>").matcher(html);
        if(m.find()){
            temp.setTitle(m.group(1));
        }


现在不知道为什么这个m.group(1)始终取不出来,而打断点看的时候m.group(0)是有值的

------解决方案--------------------
Java code

<input\\s*.+?\\s*id=\"title\"\\s*value=\"(.+?)\"\\s*/>

------解决方案--------------------
把你的html贴出来看看
------解决方案--------------------
Java code

public static void main(String[] args) {

        String str = "<input name=\"title\" type=\"hidden\" id=\"title\" value=\"test\" />";

        Pattern pattern = Pattern
                .compile("<input\\s*name=\"\\w*\"\\s*type=\"\\w*\"\\s*id=\"\\w*\"\\s*value=\".*\"\\s*/>");
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }

------解决方案--------------------
和你html內容有關,如果你把模式串作為匹配對象,同時替換(.*?)部份為abc或者a\"bc
還是可以找到的

所以查看一下這部份在html中到底是什麽再作針對性修改