查看: 1700|回复: 6

奇怪的字符串结合问题?

  [复制链接]
梦石
0
星屑
50
在线时间
4 小时
注册时间
2007-8-30
回帖
84
发表于 2008-3-7 19:46:10 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
cc="mm4141321ma3214556co"
d=cc[/[m][m]\d*/].slice!(/[m][m]/)
p d  =》“mm”
而
cc="mm4141321ma3214556co"
d=cc[/[m][m]\d*/]
d.slice!(/[m][m]/)
p d     =>“4141321”

为什么不能直接在节选的字符串上用删除。问题出在那?


版务信息:本贴由楼主自主结贴~

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
回帖
3667

第1届短篇游戏比赛亚军

发表于 2008-3-8 03:38:13 | 显示全部楼层
cc="mm4141321ma3214556co"
d=cc[/\mm\d*/].slice!(/\mm/)

p d    #mm


cc="mm4141321ma3214556co"

d=cc[/\mm\d*/]
f = d.slice!(/\mm/)

p f    #mm


d == f
纵然千里外,我等雁归来。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
4 小时
注册时间
2007-8-30
回帖
84
 楼主| 发表于 2008-3-8 04:08:21 | 显示全部楼层
两者是不同的。美兽殿^^!
我的是
d.slice!(/mm/)
p d     =>“4141321”
而你的脚本是
f = d.slice!(/\mm/)
p f    #mm
多了一个f=,我的是直接调用方法,所以才说结合的奇怪啊
f = d.slice!(/\mm/)
p f,d    #"mm" ,“4141321”
实验
f = d.slice!(/\cde/)
p f,d     #"nil","mm4141321”

这说明字符串的slice!方法去除了d匹配的部分,而f却被赋值的是匹配的返回值,而不是d去除匹配部分值
所以才说这个方法的结合似乎有些问题啊。
回复

使用道具 举报

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
回帖
3667

第1届短篇游戏比赛亚军

发表于 2008-3-8 04:17:10 | 显示全部楼层
两者是相同的,

一因为方法放在了一起,所以d得到最后一个方法slice!的返回值.

二是分开的,所以得到slice!的返回值是f.
纵然千里外,我等雁归来。
回复

使用道具 举报

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
回帖
2437

贵宾

发表于 2008-3-8 04:20:40 | 显示全部楼层
优先级
回复

使用道具 举报

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
回帖
3667

第1届短篇游戏比赛亚军

发表于 2008-3-8 04:23:51 | 显示全部楼层
哦,那我可能理解错了LZ的意图.
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
纵然千里外,我等雁归来。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
4 小时
注册时间
2007-8-30
回帖
84
 楼主| 发表于 2008-3-8 04:40:56 | 显示全部楼层
重读帮助,终于理解了。
slice!(regexp)
从字符串中删除指定的范围(请参考 self[])然后返回删除的子字符串。
若参数超出范围则返回 nil。

slice!返回的居然是删除的子字符串,而不是加工过的self,一直没注意过。用gust习惯了。TT
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部