gpt4 book ai didi

ruby - 意外的正则表达式警告 "warning: character class has duplicated range"

转载 作者:数据小太阳 更新时间:2023-10-29 08:39:42 27 4
gpt4 key购买 nike

我在 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]+/ .注意:只有一根 pipe 。

但我认为您真正想要的是:/(,|;|\r|\n)+//[,;\r\n]+/
这与以下内容匹配:

  • ,
  • ;
  • \r
  • \n

关于ruby - 意外的正则表达式警告 "warning: character class has duplicated range",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12356372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com