gpt4 book ai didi

ruby - 在正则表达式中提取字符串

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

我对 Ruby 有点陌生,但我对 Ruby 中的正则表达式有疑问。

我有一个字符串,我想将字符串中的数字保存在一个新变量中,只保存数字。 ruby 是一种粉红色到血红色的 gem ,是矿物刚 Jade (氧化铝)的变种。我的文本列表

ruby is a pink to blood-red colored gemstone, a variety8of the mineral corundum (aluminium oxide). 

我的正则表达式是:

/blood-red colored gemstone, a variety(.*?)of the mineral corundum/m

现在我想将结果保存在一个新变量中。所以让我们说:

var1 = 'ruby is a pink to blood-red colored gemstone, a variety8of the mineral corundum (aluminium oxide).'

var2 = var1[/blood-red colored gemstone, a variety(.*?)of the mineral corundum/m]

现在的结果是整个句子从血红色...到...矿物刚 Jade 。但我怎样才能进入没有边界的中间地带。在 Rubular 中,它显示为一个“组”(在我的例子中,我想访问句子中的数字)。我怎样才能访问这个组?

您可以在 Rubular http://rubular.com/r/PgAgwRw3a5 中观看我的示例

非常感谢

最佳答案

来自documentation :

If a Regexp is supplied, the matching portion of the string is returned. If a capture follows the regular expression, which may be a capture group index or name, follows the regular expression that component of the MatchData is returned instead.

所以,这应该可行:

 var2 = var1[/blood-red colored gemstone, a variety(.*?)of the mineral corundum/m, 1]
# => "8"

关于ruby - 在正则表达式中提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26926261/

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