Java的正则表达式与javascript的是否一样? 准备用正则表达式解决一些问题,想了解一下, Java的正则表达式与javascript的是否一样? 两者完全一样,还是基本一样,还是有很大区别? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 基本语法完全一样,但是 Java 属于编译型语言支持的正则表达式语法要比 JavaScript 多很多。 Java 的正则比 JavaScript 的厉害很多 打个比方啊,比如Java是老虎,那JavaScript是壁虎,两者没关系的。 你有点搞混了首先,正则表达式 跟java和javascript是没直接关系的,当然你写的正则表达式是不会变的然后,java javascript的正则表达式类是有很大差异的,类构造函数 api等都是不一样的, 刚才加你qq了,你没反映,看到信息的话麻烦发我邮箱里面呗[email protected] 为什么非得知道他们什么区别?看你用的环境,如果是脚本环境就用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("匹配");} 当然了,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 中实现的话就没有那么简洁了。 瞎说,java里面更简单:String str = "hello 123 abc 456 def 7890 hi 1344 jkl2245mno33314pqr134st123uv1234w143x1234yz";String s = str.replaceAll("\\d+","#");System.out.println(s); 把我在 20 楼的 JavaScript 代码执行一下就知道了,并非像你所想的那样。 搞明白一个问题 正则表达式在什么语言里都有 它只是个标准 表达式内容基本可以实现跨语言使用java 和JavaScript只是调用正则表达式的方法不一样而已 java环境搭建问题 在众多字符串中找出重复项 数据库的问题 JAVA???帮忙 在线等 请问2维数组怎么样定义成不规则的? mysql-connector-java-3.1.8-bin.jar 的连接问题 居然可以自己给自己专家分,我晕,试贴一次? 哪里可以找到JAVA安装,如何安装啊? java有没有vb中热区的概念?? java读文件,比如有文件中有8个字节是double型,怎么它读出来,也转为double 求一个算法, 关于重复记录的问题 大家有人写过平滑图像的算子吗?怎么得到一幅倾斜图像的角点呢?
首先,正则表达式 跟java和javascript是没直接关系的,当然你写的正则表达式是不会变的然后,java javascript的正则表达式类是有很大差异的,类构造函数 api等都是不一样的,
刚才加你qq了,你没反映,看到信息的话麻烦发我邮箱里面呗
[email protected]
看你用的环境,如果是脚本环境就用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("匹配");
}
比如我们要把一个字符串中所有奇数个数换成 # 的话就可以这样做:<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 中实现的话就没有那么简洁了。
String str = "hello 123 abc 456 def 7890 hi 1344 jkl2245mno33314pqr134st123uv1234w143x1234yz";
String s = str.replaceAll("\\d+","#");
System.out.println(s);
把我在 20 楼的 JavaScript 代码执行一下就知道了,并非像你所想的那样。