gpt4 book ai didi

ruby - 来自哈希的字符串中的子词(和短语)

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

我正在寻找一种方法来从哈希中替换字符串中的单词和短语。我知道这可以在 Ruby > 1.9 中优雅地完成单个单词:

a = "every good boy does fine"
h = {"every" => "all","boy" => "girl", "fine" =>"well" }
a.gsub(/\w+/) { |m| h.fetch(m,m)}

https://stackoverflow.com/a/20650800/4530434

但是,如果我要替换的短语不止一个词,这将不起作用。我想要的是这样的东西,理想情况下使用任意长的字符串替换,但我会接受两个(或三个)单词短语。

a = "I love the eighteen nineties"
b = {"eighteen nineties" => "1890's" }
# => "I love the 1890's"

我试过在上面的代码中摆弄正则表达式,但无法正常工作。

最佳答案

根据映射制作图案:

text = "I love the eighteen nineties"
mapping = {"eighteen nineties" => "1890's"}
pattern = /\b#{Regexp.union(mapping.keys)}\b/
text.gsub(pattern, mapping)
# => "I love the 1890's"

关于ruby - 来自哈希的字符串中的子词(和短语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36144710/

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