gpt4 book ai didi

用于捕获正则表达式匹配项的 Ruby 单行代码

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

在 Perl 中,我使用以下一行语句通过正则表达式从字符串中提取匹配项并分配它们。这个找到一个匹配项并将其分配给一个字符串:

my $string = "the quick brown fox jumps over the lazy dog.";

my $extractString = ($string =~ m{fox (.*?) dog})[0];

结果:$extractString == 'jumps over the lazy'

这个从多个匹配项创建一个数组:

my $string = "the quick brown fox jumps over the lazy dog.";

my @extractArray = $string =~ m{the (.*?) fox .*?the (.*?) dog};

结果:@extractArray == ['quick brown', 'lazy']

在 Ruby 中是否有一种等效的方法来创建这些单行代码?

最佳答案

string = "the quick brown fox jumps over the lazy dog."

extract_string = string[/fox (.*?) dog/, 1]
# => "jumps over the lazy"

extract_array = string.scan(/the (.*?) fox .*?the (.*?) dog/).first
# => ["quick brown", "lazy"]

如果未找到匹配项,此方法还将返回 nil(而不是抛出错误)。

extract_string = string[/MISSING_CAT (.*?) dog/, 1]
# => nil

extract_array = string.scan(/the (.*?) MISSING_CAT .*?the (.*?) dog/).first
# => nil

关于用于捕获正则表达式匹配项的 Ruby 单行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21000431/

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