如何在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 '\\\" '}