"hello world".scan(/\w{2}/) => ["-6ren">
gpt4 book ai didi

Ruby 的 "hello world".scan(/(\w){2}/) 和 "hello world".scan(/\w{2}/) 不一样?

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

我以为我知道 Ruby 中的 scan:就好像它在做一个单一的匹配,但对所有结果重复它并放入数组?

ruby-1.9.2-p0 > "hello world".scan(/\w{2}/)
=> ["he", "ll", "wo", "rl"]

ruby-1.9.2-p0 > "hello world".scan(/(\w){2}/)
=> [["e"], ["l"], ["o"], ["l"]]

为什么第二行会产生这样的结果——您如何让它返回与第一行相同的结果? (因为有时我们必须将 () 添加到正则表达式中。


作为合约,无论有无(),以下都是一样的:

ruby-1.9.2-p0 > "hello world"[/\w{2}/]
=> "he"

ruby-1.9.2-p0 > "hello world"[/(\w){2}/]
=> "he"

最佳答案

parent 创建了一个匹配组。请尝试使用 /(?:\w){2}/

关于Ruby 的 "hello world".scan(/(\w){2}/) 和 "hello world".scan(/\w{2}/) 不一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4113235/

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