Java的正则表达式与javascript的是否一样?

highscore2 2009-03-30 04:36:22
准备用正则表达式解决一些问题,想了解一下, Java的正则表达式与javascript的是否一样? 两者完全一样,还是基本一样,还是有很大区别?
...全文
619 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
java-guy 2010-03-26
  • 打赏
  • 举报
回复
语法差不多,但貌似匹配规则不太一样。
luallen 2009-04-03
  • 打赏
  • 举报
回复
搞明白一个问题 正则表达式在什么语言里都有 它只是个标准 表达式内容基本可以实现跨语言使用

java 和JavaScript只是调用正则表达式的方法不一样而已
lone1984 2009-04-03
  • 打赏
  • 举报
回复
不太一样
joejoe1991 2009-04-02
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 quanjinzhang 的回复:]
瞎说,java里面更简单:
String str = "hello 123 abc 456 def 7890 hi 1344 jkl2245mno33314pqr134st123uv1234w143x1234yz";
String s = str.replaceAll("\\d+","#");
System.out.println(s);
[/Quote]

你根本连20楼的代码都没看懂。
xux8736816872008 2009-04-02
  • 打赏
  • 举报
回复
大部分是一样的,只是用法上有所区别而已!!!!!!!!
Dan1980 2009-04-01
  • 打赏
  • 举报
回复
正则表达式本身是一个标准,是超越特定的编程语言的。虽然不同语言有不同的具体实现,但大体都遵照了这个标准。就像说话,对方不一定要说非常标准的普通话你才听得懂,人家说四川味儿的普通话,广东味儿的普通话,你都听得懂,不是吗?
quanjinzhang 2009-04-01
  • 打赏
  • 举报
回复
瞎说,java里面更简单:
String str = "hello 123 abc 456 def 7890 hi 1344 jkl2245mno33314pqr134st123uv1234w143x1234yz";
String s = str.replaceAll("\\d+","#");
System.out.println(s);
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 quanjinzhang 的回复:]
瞎说,java里面更简单:
String str = "hello 123 abc 456 def 7890 hi 1344 jkl2245mno33314pqr134st123uv1234w143x1234yz";
String s = str.replaceAll("\\d+","#");
System.out.println(s);
[/Quote]

把我在 20 楼的 JavaScript 代码执行一下就知道了,并非像你所想的那样。
  • 打赏
  • 举报
回复
当然了,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 中实现的话就没有那么简洁了。

humcomm 2009-03-31
  • 打赏
  • 举报
回复
区别还是比较打,应该区别学习
licip 2009-03-31
  • 打赏
  • 举报
回复
匹配的形式写法差不多.
airlifei 2009-03-31
  • 打赏
  • 举报
回复
打个比方啊,比如Java是老虎,那JavaScript是壁虎,两者没关系的。
quanjinzhang 2009-03-31
  • 打赏
  • 举报
回复
为什么非得知道他们什么区别?
看你用的环境,如果是脚本环境就用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("匹配");
}
LoveJava520 2009-03-31
  • 打赏
  • 举报
回复
要成为高手就要在CSDN混.
yangkaixin1226 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bao110908 的回复:]
基本语法完全一样,但是 Java 属于编译型语言支持的正则表达式语法要比 JavaScript 多很多。
[/Quote]支持火龙果
possibleonline 2009-03-31
  • 打赏
  • 举报
回复
学了就知道,没什么区别的
Buddha_sy 2009-03-31
  • 打赏
  • 举报
回复
区别不是很大
HinanaiTenshi 2009-03-31
  • 打赏
  • 举报
回复
最常用的语法差不多,用起来都一样,看每个人正则的修为了( ̄(工) ̄)
fortin1001 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cqhweb 的回复:]
要与正则表达式的chm手册

我传给大家一份: QQ:554059395
[/Quote]

刚才加你qq了,你没反映,看到信息的话麻烦发我邮箱里面呗
yuyang030405@126.com
gao512008 2009-03-31
  • 打赏
  • 举报
回复
多查看API
加载更多回复(8)
正则表达式经典实例》讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,《正则表达式经典实例》给出了涉及基于C#、JavaJavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。《正则表达式经典实例》的读者对象是对正则表达式感兴趣的软件开发人员和系统管理员。 《正则表达式经典实例》旨在教会读者很多新的技巧以及如何避免语言特定的陷阱,读者可以通过《正则表达式经典实例》提供的实例解决方案库来解决实践中的复杂问题。 《正则表达式经典实例》:每个程序员都会遇到需要使用正则表达式的情况,但是要用好正则表达式却并不容易。《正则表达式经典实例》提供了100多个实例,以帮助读者使用正则表达式处理数据和文本。即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,《正则表达式经典实例》对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其中包括C#、JavaJavaScript、Perl、PHP、Python、Ruby和VB.NET的实例。 《正则表达式经典实例》主要包括以下内容: 通过一个精练的教程理解正则表达式的基本原理和技巧; 在不同的编程语言和脚本语言中有效使用正则表达式; 学习如何对输入进行合法性检查和格式化; 处理单词、文本行、特殊字符和数值; 学习如何在uRL、路径、标记语言和数据交换中使用正则表达式; 学习更高深的正则表达式特性中的微妙之处; 理解在不同语言中正则表达式的API、语法和行为之间的区别; 创建更好的正则表达式来满足个性化的需求。 使用8种编程语言的详细解决方案,包括一个正则表达式简明教程

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧