如何在ruby数组中创建gsub\n?

如何在ruby数组中创建gsub\n?,ruby,arrays,gsub,Ruby,Arrays,Gsub,如何从数组中删除所有\元素 大小为6的数组: data = [ " \"\"http://www.web1.com\\\"", "\"", " \"\"https://www.web2.com\\\"", "\"", " \"\"http://www.web3.com\\\"", "\"", ] 渴望的: 尝试: 您可以通过执行以下操作来gsub all\ your_string.gsub('\','') 以下是如何获

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

大小为6的数组:

data =
[
      " \"\"http://www.web1.com\\\"",
      "\"",
      " \"\"https://www.web2.com\\\"",
      "\"",
      " \"\"http://www.web3.com\\\"",
      "\"",
 ]
渴望的: 尝试:
您可以通过执行以下操作来gsub all\

your_string.gsub('\','')

以下是如何获得所需输出:

data.map { |e| e.gsub(/["\s\\\/]|(?:https?:\/\/)/,'') }.reject(&:empty?)
您迭代数据数组并用
'
替换匹配regexp的元素内容。然后你只需删除空字符串


让我解释一下regexp:
[…]
表示一组字符,我们将匹配组中的任何字符
|
运算符
(?:)
是非capuring组,因此我们必须匹配整个
https://
http://
\s
表示任何空白字符<代码>\
\/
被转义
\
/

这将为您提供预期的结果

data.grep(/https?:\/\/([^\\]*)/) {|v| v.match(/https?:\/\/([^\\]*)/)[1] }
但是您必须知道
\
用于转义字符串中的特殊字符


“\\”
只有一个字符是
\
“\\”
只有一个字符是

当然,希望有帮助。你可以用reject{124; e | e.empty?}替换select{e{e | e.empty?}@Kavu像
http://www.htps.com/
或域部分中包含
htps
字符的任何其他内容:)@xdazz是的,它将完全失败:-D需要改进我的答案。
data.map { |e| e.gsub(/["\s\\\/]|(?:https?:\/\/)/,'') }.reject(&:empty?)
data.grep(/https?:\/\/([^\\]*)/) {|v| v.match(/https?:\/\/([^\\]*)/)[1] }
data.grep(/http/){|x|x.delete '\\\" '}