本帖最后由 jyleon 于 2011-01-01 02:34:39 编辑

解决方案 »

  1.   

    使用勉强的模式匹配: reluctant
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test {
        public static void main(String[] args) {
            String str = "<html><body>" + "scs[@cms.ArtiList count='20' /]"
                    + "ssscsc[@cms.ArtiList count='21' /]" + "sc/]</body></html>";
            Pattern pattern = Pattern.compile("\\[@cms.*?/\\]"); // 关键在 .*? 里的 ?
            Matcher matcher = pattern.matcher(str);
            while (matcher.find()) {
                System.out.println(matcher.group());
            }
        }
    }
      

  2.   

    十分感谢,已经写出来了和你的方法一样,只是需要把[]的转换一下
    String patTag = "\\u005B@cms.*?/\\u005D";  // *换成+也可以