今天看别人关于处理ini文件的代码 里面用到了Pattern和Matcher
查询了API 但是还是无法理解\\[\\s*.*\\s*\\] 求高人指点
 

解决方案 »

  1.   

    首先,前一个\\匹配'\'
    接着[]括号内部是个备选字符集, 它匹配'\','s','*','.'中任何一个,
    那么整个表达式匹配'\\', '\s', '\*', '\.' 中任何一个,
    我暂时是这么理解的, 不知道其他人怎么看.
    给你一个在javascript中的测试代码,输入"\\", "\s"....... 试试看,是可以的.<input type="text" id="test" onchange="check()"/>
    <script language="javascript">
        var reg = /^\\[\\s*.*\\s*\\]$/;
        function check(){
            var s = document.getElementById("test").value;
            alert(reg.test(s))
        }
    </script>
      

  2.   

    我觉得给你看下我写的测试代码,你就明白是干什么的了:
    import java.util.regex.*;public class TestMatcher {
    public static void main(String args[]){
    String regex = "\\[\\s*.*\\s*\\]";
    String str = "[  dsa中国万岁ds ]dsadsad";

    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(str);

    while(matcher.find()){
    System.out.print(matcher.group());
    }
    }
    }
    [  dsa中国万岁ds ]\\[是匹配[的,因为需要用\\转义   同理\\]是匹配右方括号的]
    \\s是匹配空格的  *是匹配0到多个空格的   .是匹配任意非换行符字符的 所以综合起来就是匹配方括号中的空格和非换行符组成的字符串的