gpt4 book ai didi

ruby - 用于从 URI 中提取字符串和数字的条件正则表达式

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

我有这样的 URI 字符串(etc 可以是任意长度):

/7/ipsum/dolor/etc
/2/not/17/ipsum/etc

这是我想要实现的目标:在正斜杠上拆分字符串,取第二个和第三个匹配项(["ipsum", "dolor"]["not ", "17"]), 如果不是数字则丢弃第二个元素。期望的结果是 ["ipsum"]["not", "17"]

我用普通的 ruby​​ 实现了这个(通过将字符串拆分成一个数组,然后检查所需值的值)。使用正则表达式是否有更好的方法?

最佳答案

这是一个可能的实现,带有一个扩展的、记录在案的正则表达式。

def extract_parts_from(path)
pattern = %r{
^/[^/]+ # don't capture the first element
/([^/]+) # always capture the second element
/(?:(\d+)/)? # capture the third element if it's made up of digits
}x
path.match(pattern)[1,2].compact
end

测试:

["/7/ipsum/dolor/etc", "/2/not/17/ipsum/etc"]. each do |p|
p extract_parts_from(p)
end

结果:

["ipsum"]
["not", "17"]

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

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