如何删除Ruby中以某些字符开头的字符串

HML*_*ude -3 ruby regex arrays string

我在数组中显示以下模式的字符串:

"@SomeUselessText"
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想摆脱我的数组中以字符"@"开头的所有字符串.

这是我到目前为止所提出的:

def array_purge(array)
  for array.each |item|
    item = item.gsub(/@.*/, "")
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,这也摆脱了表单的有效电子邮件地址:

"info@SomeSite.com"
Run Code Online (Sandbox Code Playgroud)

...我想保留.

我猜有一种优雅的方式来处理这个问题.也许使用".reject!"

mov*_*son 7

其他建议的答案实际上并没有从阵列中清除目标物品; 他们只是用空字符串替换项目.您更希望这样:

def array_purge(array)
  array.reject! { |item| item.start_with?('@') }
end

>> array = ['Hello', '123', '@SomeUselessText', 'info@SomeSite.com']
>> array_purge(array)
=> ["Hello", "123", "info@SomeSite.com"]
Run Code Online (Sandbox Code Playgroud)