Project1

标题: 关于字符串转义的问题,求解释 [打印本页]

作者: taroxd    时间: 2013-12-21 14:24
标题: 关于字符串转义的问题,求解释
本帖最后由 taroxd 于 2013-12-21 15:39 编辑

RUBY 代码复制
  1. a = '\ta//*r<o?>x\d'
  2. p a                       # "\\ta//*r<o?>x\\d"
  3. p a.delete '\/:*?"<>|'    # "\\tarox\\d"
  4. p a.delete '\\/:*?"<>|'   # "\\tarox\\d"
  5. p a.delete '\\\/:*?"<>|'  # "taroxd"


以上是自己瞎弄的结果,为什么要三条"\"才能把字符串里的“\”消除呢?求解释一下
作者: fux2    时间: 2013-12-21 15:23
两条就够了,第三条是用来转义后面的反斜杠的。
作者: taroxd    时间: 2013-12-21 15:29
本帖最后由 taroxd 于 2013-12-21 15:33 编辑
fux2 发表于 2013-12-21 15:23
两条就够了,第三条是用来转义后面的反斜杠的。


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

作者: fux2    时间: 2013-12-21 15:33
taroxd 发表于 2013-12-21 15:29
那麻烦解释一下第四行的结果?
上面的结果是在RMVA里试出来的,如果在Ruby2.0.0中,输出的结果中所有“\ ...

结果有什么问题吗?
作者: taroxd    时间: 2013-12-21 15:35
fux2 发表于 2013-12-21 15:33
结果有什么问题吗?

两条\没有把字符串里的\删掉,而/却删掉了
作者: fux2    时间: 2013-12-21 15:38
taroxd 发表于 2013-12-21 15:35
两条\没有把字符串里的\删掉,而/却删掉了

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




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1