黑马程序员技术交流社区

标题: 正则表达式中问题2 [打印本页]

作者: 杨康    时间: 2012-7-11 19:42
标题: 正则表达式中问题2
本帖最后由 杨康 于 2012-7-12 17:18 编辑

为什么不同的字符串用同一个规则切割,得到的结果确实一样的?

222.jpg (51.55 KB, 下载次数: 82)

222.jpg

作者: 温少邦    时间: 2012-7-12 08:10
":*"匹配一个或多个":"
"a::b::c"和"a::b::c::"按冒号切割
当然都是"a","b","c"
作者: 孔令金    时间: 2012-7-12 08:21
因为去掉最后的冒号分隔符,你的字符串是一样的的。
作者: 王达    时间: 2012-7-12 09:07
":*"是匹配0个或多个,":+"才是匹配1个或多个。。
你的两个表达式"a::b::c"和"a::b::c::"用冒号切割
结果都是{"a","b","c"}啊
作者: 王宝康    时间: 2012-7-12 11:43
一开始以为用“:*”切割"a::b::c"会得到[a,b,c],切割"a::b::c::"会得到[a,b,c, ""],
后来看API知道split(String regex)方法的作用为:使用给定的表达式和限制参数 0 来调用两参数 split 方法,其中split方法中说明,切割所得数组中不包括结尾空字符串,所以切割结果是一样的,建议楼主看下API中String类的public String[] split(String regex, int limit)和public String[] split(String regex),API可是个好东西啊!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2