gpt4 book ai didi

ruby - 如何 gsub\in ruby​​ 数组?

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

如何从数组中删除所有 \ 元素?

大小为 6 的数组:

data =
[
" \"\"http://www.web1.com\\\"",
"\"",
" \"\"https://www.web2.com\\\"",
"\"",
" \"\"http://www.web3.com\\\"",
"\"",
]

期望:

 ["www.web1.com", "www.web2.com", "www.web3.com"]

尝试过:

 data = 
=> [" \"\"http://www.web1.com\\\"", "\"", " \"\"https://www.web2.com\\\"", "\"", " \"\"http://www.web3.com\\\"", "\""]
2.0.0-p353 :019 > data.each do |d|
2.0.0-p353 :020 > d.gsub!(/\+/,'')
2.0.0-p353 :021?> end
=> [" \"\"http://www.web1.com\\\"", "\"", " \"\"https://www.web2.com\\\"", "\"", " \"\"http://www.web3.com\\\"", "\""]
2.0.0-p353 :022 >

最佳答案

以下是获得所需输出的方法:

data.map { |e| e.gsub(/["\s\\\/]|(?:https?:\/\/)/,'') }.reject(&:empty?)

您遍历数据数组并将与正则表达式匹配的元素内容替换为 ''。然后你只需删除空字符串。

让我稍微解释一下正则表达式:[...] 表示字符组,我们将匹配组中的任何字符; |操作符; (?:)是非捕获组,所以我们必须匹配整个https://http://\s 表示任意空白字符; \\\/ 被转义为 \/

关于ruby - 如何 gsub\in ruby​​ 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22091572/

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