本帖最后由 jdgdf566 于 2013-11-20 20:52:51 编辑

解决方案 »

  1.   

    正则表达式使用通用术语来描述字符串的一种方法,你可以说:如果一个字符串包含这些东西,那么它与我要找的东西匹配。例如,要表达一个数可能有也可能没有负号你可以在负号下面跟一个问号:-?
    要表示一个整数,你可以描述其具有一位或多位数字。在正则表达式中,一个数位用'\d'表示,但在java的字符串类型中,我们必须添加一个反斜线才能“转义”表达出反斜线:‘\\d’。正则表达式中要说明有一个或多个前述的表达式,就要使用'+'。所以要表达“可能有负号,后面有一个或多个数位”,我们要这样写:-?//d+
          
      

  2.   

    在java里这个是匹配一个点\在java里是特殊字符需要转义
    匹配\.的表达式   "\\\\·"
      

  3.   

    感觉你的理解错了吧,java中用正则来匹配的话, .就是匹配任何字符啊!!!
    我用下面的测试了
    import java.util.regex.*;
    public class testzhengze{
    public static void main(String[] args){
    String str="a.b";
    Pattern p=Pattern.compile(".");
    Matcher m=p.matcher(str);
    while(m.find()){
    System.out.println(m.group());
    }
    }
    }
    输出就是
    可见,.匹配了任何字符啊
      

  4.   

    java正则中的\\.表示.这个字符的字面意义,不再表示正则中的任意一个字符了!
    测试如下:
    import java.util.regex.*;
    public class testzhengze{
    public static void main(String[] args){
    String str="a.b";
    Pattern p=Pattern.compile("\\.");
    Matcher m=p.matcher(str);
    while(m.find()){
    System.out.println(m.group());
    }
    }
    }
    运行机制可能是这样的,\\.在经过编译器(不知道还是JVM编译时),\\转义成了\,所以就变成了\.,正则编译时,将\.转义成普通字符 .,所以这个不再表示任意一个字符了,只是一个 . 了