根据开始字符删除文本文件中的行

Jos*_*ech 5 ruby

我有一封电子邮件,看起来像这样:

Hey how are you?

On Saturday sender@example.com wrote:
> something
> On Friday sender@example.com wrote:
>> previous thing
Run Code Online (Sandbox Code Playgroud)

我将如何删除以开头的行>以及包含的行email@example.com wrote

我是否应该保留“某人写的”部分,因为这可以删除合法的行,也许只有在它是最后一行时才删除该行。

我正在尝试这个:

message_filtered = message_txt.to_s.split("\n").each do |m|
  if m[0] != ">" then
    return m
  end
end

puts message_filtered
Run Code Online (Sandbox Code Playgroud)

我可以推m送到一个数组,然后加入该数组,\n但我正在尝试一种更短的方法。

Hau*_*eth 5

尝试

message_filtered = message_txt.lines.reject { |line|
  line[0] == '>' || line =~ YOUR_EMAIL_REGEXP
}.join('\n')
Run Code Online (Sandbox Code Playgroud)

要删除以>您开头的行,可以使用:

message_filtered = message_txt.gsub(/(^>.+)/, '') # should work but not tested
Run Code Online (Sandbox Code Playgroud)