java正则:"([^\\/]*)" 和 "([^/]*)"有啥区别么?感觉都一样

水牛叔叔 发布于 2013/11/18 23:59
阅读 381
收藏 0

比如

Pattern.compile("([^\/]*)")
Pattern.compile("([^/]*)")
我觉得功效是一样的

以下是问题补充:

@水牛叔叔:我问错了第一个:([^\\/]*) 改成 ([^\/]*) (2013/11/20 12:07)
加载中
0
oxsicn
oxsicn

很简单啊 

 ([^\\/]*)匹配没有 "\" 和 "/"的文本 

([^/]*) 匹配没有"/"的文本

水牛叔叔
水牛叔叔
肯定不对
0
Padding
Padding

在JAVA里理论上一样的,因为右斜杠是转移字符,第一个在转义了以后跟没转义的效果是一样的,因为左斜杠不用转义

水牛叔叔
水牛叔叔
thks,我第一个写错了。但是你还是帮了忙
0
sofn
sofn

首先,因为有一个 * 号匹配零个或多个字符,所以不管中括号里匹不匹配都会返回true。

单从[^\\/]和[^/] 的关系来说,如二楼所说,这两个是一样的,如想匹配“\”,正则应写为: “\\\\”。

水牛叔叔
水牛叔叔
甚是,O(∩_∩)O谢谢 了
0
fc_lamp
fc_lamp

功能表现上没有区别的,不过单看表达式,有一点区别:\\/ 这个表达式的结果是:\/,即转义\,使其形成正则表达式模式:\/。 不过/不是JAVA的转义序列字符,所以不需要转义了。

水牛叔叔
水牛叔叔
谢谢哥们,我第一个写错了([^\\/]*) 要改成 ([^\/]*),但是你的回答还是帮我理解了
返回顶部
顶部