日期:2014-05-18  浏览次数:20710 次

我也来问个正则表达式问题
(? <=&q=).+(&)
这个正则表达式是匹配   &q=   与   &   之间的字符
但遇到这样的字符串:   &q=aaa&bbb&ccc&(有多个&)
他得到的结果是:   aaa&bbb&ccc
他会找到最后一个&
我只想匹配第一个&
得到:   aaa
上面的表达式怎么改?


------解决方案--------------------
是不是这样
(? <=&q=).+|(&)

------解决方案--------------------
Java code
        Pattern p = Pattern.compile("(?<=&q=).+?(?=&)");
        String str = "&q=aaa&bbb&ccc&";
        Matcher m = p.matcher(str);
        while (m.find()) {
            System.out.println(m.group());
        }