准备用正则表达式解决一些问题,想了解一下, Java的正则表达式与javascript的是否一样? 两者完全一样,还是基本一样,还是有很大区别? 

解决方案 »

  1.   

    基本语法完全一样,但是 Java 属于编译型语言支持的正则表达式语法要比 JavaScript 多很多。
      

  2.   

    Java 的正则比 JavaScript 的厉害很多
      

  3.   

    打个比方啊,比如Java是老虎,那JavaScript是壁虎,两者没关系的。
      

  4.   

    你有点搞混了
    首先,正则表达式 跟java和javascript是没直接关系的,当然你写的正则表达式是不会变的然后,java javascript的正则表达式类是有很大差异的,类构造函数 api等都是不一样的,
      

  5.   


    刚才加你qq了,你没反映,看到信息的话麻烦发我邮箱里面呗
    [email protected]
      

  6.   

    为什么非得知道他们什么区别?
    看你用的环境,如果是脚本环境就用javascript;如果是java环境就用java的。区别可以说大也可以说不大,举例来说,如果是任意匹配一个字符,
    javascript:
    var ptn=/./;
    if(ptn.test("a")){
      alert("匹配");
    }
    java:
    String ptn = ".";
    if("a".match(ptn)){
      System.out.println("匹配");
    }
    如果是匹配4位数字:
    javascript:
    var ptn=/\d{4}/;
    if(ptn.test("0213")){
      alert("匹配");
    }
    java:
    String ptn = "\\d{4}";
    if("0213".match(ptn)){
      System.out.println("匹配");
    }
      

  7.   

    当然了,JavaScript 中支持闭包函数,这样给 JavaScript 中的正则表达式使用带来了很大的方便,
    比如我们要把一个字符串中所有奇数个数换成 # 的话就可以这样做:<script type="text/javascript">
    window.onload = function() {
      var str = 'hello 123 abc 456 def 7890 hi 1344 jkl2245mno33314pqr134st123uv1234w143x1234yz';
      var idx = 0;
      var s = str.replace(/\d+/g, function(m) {
            if(idx++ % 2 == 0) {
              return m.replace(/\d/g, '#');
            }
            return m;
        });
      alert(s + '\n' + str);
    }
    </script>如果要在 Java 中实现的话就没有那么简洁了。
      

  8.   

    瞎说,java里面更简单:
    String str = "hello 123 abc 456 def 7890 hi 1344 jkl2245mno33314pqr134st123uv1234w143x1234yz";
    String s = str.replaceAll("\\d+","#");
    System.out.println(s);
      

  9.   


    把我在 20 楼的 JavaScript 代码执行一下就知道了,并非像你所想的那样。
      

  10.   

    搞明白一个问题  正则表达式在什么语言里都有 它只是个标准 表达式内容基本可以实现跨语言使用java 和JavaScript只是调用正则表达式的方法不一样而已