gpt4 book ai didi

ruby - 是否有内置的 api 可以从字符串中提取模式(尽可能多次)?

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

我想使用 ruby​​ 2.1 尽可能多地从字符串中提取模式。 String#slice! 看起来很接近,但它只提取第一个匹配项。为了解决这个问题,我写了以下内容,但感觉很笨拙:

string  = "ababab"
pattern = /a/
matches = []

# clunky
loop do
m = string.slice!(pattern) || break
matches << m
end

#=> matches == ["a", "a", "a"]
#=> string == "bbb"

现在我可以用我自己的 #extract! 方法扩展 String 类,或者为此创建一个辅助对象,但我觉得这是一个很常见的情况我只是缺少标准 API 的一部分或执行此操作的更特殊的方法。

有没有更短的写法?

最佳答案

scan其次是 gsub!应该分两步做你想做的:

string  = "ababab"

matches = string.scan /a/ # => ['a', 'a', 'a']
string.gsub! /a/, '' # => "bbb"

关于ruby - 是否有内置的 api 可以从字符串中提取模式(尽可能多次)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25040682/

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