gpt4 book ai didi

ruby - 如何使用正则表达式扫描 ruby​​ 中的单词组合?

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

我正在尝试扫描字符串以查找单词列表的任意组合。具体来说,我想找到任何“数字词”组合,例如“280”或“58”。

为此,我列出了所有单数词,最多为一百万:

numberWords = ["one", "two", "three", ...... "hundred", "thousand", "million"]

然后我使用“|”加入了列表并制作了这样的正则表达式:

string.scan(/\b(#{wordList}(\s|\.|,|\?|\!))+/)

我希望这会返回所有数字单词组合的列表,但它只返回单独的单词。例如,如果字符串中有“三百万”,它会返回“三”和“百万”,而不是“三百万”。我该如何纠正这个问题?

最佳答案

numberWords = ["one", "two", "three", "hundred", "thousand", "million"]
numberWords = Regexp.union(numberWords)
# => /one|two|three|hundred|thousand|million/

"foo bar three million dollars"
.scan(/\b#{numberWords}(?:(?:\s+and\s+|\s+)#{numberWords})*\b/)
# => ["three million"]

关于ruby - 如何使用正则表达式扫描 ruby​​ 中的单词组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22353879/

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