在 Ruby 1.9.3 上运行以下命令时,我收到意外警告:
"one two,three;four\rfive\nsix\r\nseven,;\r\n,;\r\neight".split(/[,|;|\r\n]+/m)
我收到的警告是:
warning: character class has duplicated range: /[,|;|\r\n]+/
我得到了我期望的结果 - 一个如下所示的数组:
[
[0] "one two",
[1] "three",
[2] "four",
[3] "five",
[4] "six",
[5] "seven",
[6] "eight"
]
我想了解的是导致重复范围警告的原因是什么?我无法通过删除三个匹配器选项之一来获得相同的结果,因此我无法理解该警告。
谢谢你的帮助!
看来你把事情搞混了一点。
它目前匹配其中任何一个:
并且在字符类中有两次管道符 (|)。
要使警告消失,请使用以下命令:/[,|;\r\n]+/
。注意:只有一根管子。
但我认为你真正想要的是:/(,|;|\r|\n)+/
or /[,;\r\n]+/
这与以下内容匹配:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)