查看: 3520|回复: 5

[已经解决] 关于字符串转义的问题,求解释

[复制链接]

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2013-12-21 14:24:51 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 taroxd 于 2013-12-21 15:39 编辑

[pre lang="ruby" line="1"]
a = '\ta//*r<o?>x\d'
p a                       # "\\ta//*r<o?>x\\d"
p a.delete '\/:*?"<>|'    # "\\tarox\\d"
p a.delete '\\/:*?"<>|'   # "\\tarox\\d"
p a.delete '\\\/:*?"<>|'  # "taroxd"
[/pre]

以上是自己瞎弄的结果,为什么要三条"\"才能把字符串里的“\”消除呢?求解释一下

老黄鸡

梦石
4
星屑
45707
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2013-12-21 15:23:34 | 显示全部楼层
两条就够了,第三条是用来转义后面的反斜杠的。
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

 楼主| 发表于 2013-12-21 15:29:10 | 显示全部楼层
本帖最后由 taroxd 于 2013-12-21 15:33 编辑
fux2 发表于 2013-12-21 15:23
两条就够了,第三条是用来转义后面的反斜杠的。


那麻烦解释一下第四行的结果?
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45707
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2013-12-21 15:33:07 | 显示全部楼层
taroxd 发表于 2013-12-21 15:29
那麻烦解释一下第四行的结果?
上面的结果是在RMVA里试出来的,如果在Ruby2.0.0中,输出的结果中所有“\ ...

结果有什么问题吗?
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

 楼主| 发表于 2013-12-21 15:35:37 | 显示全部楼层
fux2 发表于 2013-12-21 15:33
结果有什么问题吗?

两条\没有把字符串里的\删掉,而/却删掉了

点评

这个问题,需要注意一下,比如C的正则,/应该是没有转义优先级的。  发表于 2013-12-21 15:45
最后补充一下,只有正则表达式以/正斜杠(好像我们一直念错了这其实是正斜杠)为字面值的时候,/正斜杠才用转义,某些其他语言里就不会出现  发表于 2013-12-21 15:44
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45707
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2013-12-21 15:38:34 | 显示全部楼层
taroxd 发表于 2013-12-21 15:35
两条\没有把字符串里的\删掉,而/却删掉了

字符串转义的时候是看特殊符号前面有没有\转义,而不是看\后面有没有特殊符号,所以反斜杠优先被解释转义,正斜杠留下来没意义了。

点评

谢谢  发表于 2013-12-21 15:39

评分

参与人数 1梦石 +1 收起 理由
迷糊的安安 + 1 谢谢

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部